Python Pandas重命名多个列标题的方法

6

考虑一个简单的数据框:

HeaderA | HeaderB | HeaderC 
    476      4365      457

有没有一种方法可以重命名所有列,例如在所有列末尾添加一个“X”?
HeaderAX | HeaderBX | HeaderCX 
    476      4365      457

我正在连接多个数据帧,希望能够轻松区分它们来自哪个数据集的列。

还有其他方法吗?

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

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

谢谢

4个回答

12

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 很高兴我能帮到你 :-) - piRSquared

2

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

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


2
df.columns = list(map(lambda s: s+'X', df.columns))

1
df.columns = [column + 'X' for column in df.columns]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接