考虑一个简单的df:
HeaderA | HeaderB | HeaderC
476 4365 457
有没有办法重命名所有列,例如在最后添加到所有列的“X”?
HeaderAX | HeaderBX | HeaderCX
476 4365 457
我正在连接多个数据框,并希望根据它们来自哪个数据集轻松区分列。
或者这是唯一的方法吗?
df.rename(columns={'HeaderA': 'HeaderAX'}, inplace=True)
我有超过50个列标题和10个文件;所以上述方法需要很长时间。
谢谢
答案 0 :(得分:9)
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
。
答案 1 :(得分:2)
来自SO post
。让我们尝试在重命名中使用lambda函数:
df.rename(columns = lambda x:x +'X',inplace = True)
答案 2 :(得分:1)
df.columns = [column + 'X' for column in df.columns]
答案 3 :(得分:1)
df.columns = list(map(lambda s: s+'X', df.columns))