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以相同的方式重命名多个列标题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Pandas 重命名重置索引上的多个列

python 重命名Pandas中的某个列

Python 重命名 Pandas DataFrame 列

Pandas for循环复制列以分隔数据帧,相应地重命名df

Python / Pandas:重命名非常大的数据文件的列

从 Pandas 聚合中重命名结果列(“FutureWarning:不推荐使用带有重命名的字典”)