python pandas以相同的方式重命名多个列标题
Posted
技术标签:
【中文标题】python pandas以相同的方式重命名多个列标题【英文标题】:python pandas rename multiple column headers the same way 【发布时间】: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 个列标题和十个文件;所以上述方法将需要很长时间。
谢谢
【问题讨论】:
【参考方案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 很高兴我能帮上忙 :-)以上是关于python pandas以相同的方式重命名多个列标题的主要内容,如果未能解决你的问题,请参考以下文章