【问题标题】:python pandas rename multiple column headers the same waypython pandas以相同的方式重命名多个列标题
【发布时间】:2017-09-13 13:06:00
【问题描述】:

考虑一个简单的df:

HeaderA | HeaderB | HeaderC 
    476      4365      457

有没有办法重命名所有列,例如在所有列最后添加一个“X”?

HeaderAX | HeaderBX | HeaderCX 
    476      4365      457

我正在连接多个数据框,并希望根据它们来自哪个数据集轻松区分列。

或者这是唯一的方法?

df.rename(columns={'HeaderA': 'HeaderAX'}, inplace=True)

我有超过 50 个列标题和十个文件;所以上述方法将需要很长时间。

谢谢

【问题讨论】:

    标签: python pandas header rename


    【解决方案1】:
    df.columns = [column + 'X' for column in df.columns]
    

    【讨论】:

      【解决方案2】:
      df.columns = list(map(lambda s: s+'X', df.columns))
      

      【讨论】:

        【解决方案3】:

        来自 SOpost。让我们尝试在重命名中使用 lambda 函数:

        df.rename(columns = lambda x: x+'X', inplace = True)

        【讨论】:

          【解决方案4】:

          pd.DataFrame.add_suffix

          df.add_suffix('X')
          
             HeaderAX  HeaderBX  HeaderCX
          0       476      4365       457
          

          还有妹法
          pd.DataFrame.add_prefix

          df.add_prefix('X')
          
             XHeaderA  XHeaderB  XHeaderC
          0       476      4365       457
          

          您也可以使用pd.DataFrame.rename 方法并传递一个函数。完成同样的事情:

          df.rename(columns='{}X'.format)
          
             HeaderAX  HeaderBX  HeaderCX
          0       476      4365       457
          

          在此示例中,'{}X'.format 是一个接受单个参数并附加 'X' 的函数

          这种方法的优点是你可以使用inplace=True,如果你愿意的话。

          【讨论】:

          • @jeangelj 很高兴我能帮上忙 :-)
          猜你喜欢
          • 2022-07-06
          • 1970-01-01
          • 2019-08-13
          • 2021-08-21
          • 1970-01-01
          • 1970-01-01
          • 2018-10-27
          • 1970-01-01
          • 2019-07-21
          相关资源
          最近更新 更多