python pandas以相同的方式重命名多个列标题

时间:2017-04-17 21:00:31

标签: python pandas header rename

考虑一个简单的df:

HeaderA | HeaderB | HeaderC 
    476      4365      457

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

HeaderAX | HeaderBX | HeaderCX 
    476      4365      457

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

或者这是唯一的方法吗?

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

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

谢谢

4 个答案:

答案 0 :(得分:9)

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

答案 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))