使用 Pandas 重命名 excel 的列

Posted

技术标签:

【中文标题】使用 Pandas 重命名 excel 的列【英文标题】:Rename columns of excel using Pandas 【发布时间】:2021-09-27 22:30:27 【问题描述】:

我正在学习 pandas 进行数据清理。我正在阅读一个如下所示的 excel 文件。

我要做的是重命名列名,例如 First Cost Q3 2020, First Cost Q4 2020, First Cost Q1 2021 等等。还有其他列名称“AUFC”、“First Cost Growth %” 等等。而且我还必须像“First Cost”一样制作。

我是熊猫新手,不知道如何重命名这样的列。谁能指导我?

【问题讨论】:

欢迎来到 SO,请阅读 tour 和 minimal reproducible example 在这种情况下还有:how-to-make-good-reproducible-pandas-examples 嗨!以下任何一个答案是否有效?如果是这样并且如果您愿意,您可以考虑accepting 其中之一向其他人发出问题已解决的信号。如果没有,您可以提供反馈,以便改进(或完全删除) 【参考方案1】:

通过columns属性和map()方法试试:

df.columns=df.columns.map(' '.join)

现在,如果您打印 dfdf.columns,您将获得预期的输出

【讨论】:

【参考方案2】:

您可以使用以下方法重命名列名:

df.rename(columns = 'Q3 2020':'First Cost Q3 2020', inplace = True)

要更新所有列名,您可以这样做:

df.columns = ['First Cost Q3 2020', 'First Cost Q4 2020', 'First Cost Q1 2021']

【讨论】:

【参考方案3】:

您可以通过添加参数header=[0,1]来读取具有多索引列的excel文件,如下所示(更好地描述here):

df = pd.read_excel(your_path, 
                   header=[0,1], 
                   sheetname=your_sheet_name)

然后按照here 的描述合并多索引:

df.columns = df.columns.map(' '.join).str.strip(' ')

【讨论】:

【参考方案4】:

最简单的方法是如下分配所需的列名列表(必须是所有列):

df.columns = ['First Cost Q3 2020', 'First Cost Q4 2020', etc].

如果 Pandas 将此 excel 读取为多级列,您将需要做更多的工作。让我们知道是否是这种情况

【讨论】:

是的,它们是多级列。

以上是关于使用 Pandas 重命名 excel 的列的主要内容,如果未能解决你的问题,请参考以下文章

用名称中的句点重命名clickhouse中的列

数据透视表列重命名

为啥我重命名后无法访问 pandas 中的列? [复制]

在 Pandas 中重命名多个列

如何使用字典键和值重命名 pandas DataFrame 中的列?

是否可以直接重命名存储在 hdf5 文件中的 pandas 数据框的列?