使用 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)
现在,如果您打印 df
或 df.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 的列的主要内容,如果未能解决你的问题,请参考以下文章