python pandas重命名列名以开头

标签 python pandas rename wildcard startswith

我有多个具有统一列名的 excel 文件,除了一个。

一个文件将其称为 EndOfMarchStatus,另一个文件将其称为 EndofAprilStatus,依此类推。

我需要将列名称更改为仅显示 EndofMonthStatus。我真的找不到与这个问题相匹配的答案。

某种形式的带有通配符或 startswith 的重命名命令可能会起作用。

我试过但没用的是:

sheet1df.columns.str.replace('Endof.*', 'EndOfMonthStatus')

sheet1df.rename(columns={sheet1df.filter(regex='*.Status').columns[0]: 'EndOfMonthStatus'}, inplace=True)

sheet1df.rename(columns={'^Status':'EndOfMonthStatus'}, inplace=True)

sheet1df.rename(columns=lambda x: x.replace('Endof%', 'EndOfMonthStatus'), inplace=True)  

最佳答案

你可以使用str.replace:

df.columns = df.columns.str.replace('(?<=EndOf)(\w+)(?=Status)', 'Month')

关于python pandas重命名列名以开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55301856/

相关文章:

python - 如何将文件传递给 unittest.mock.mock_open()?

python - 卡在 Flask 教程步骤 5 "initdb"无法识别

python - Pandas:多索引二级整数切片

python - 如何检查 pandas MultiIndex 中是否存在列

windows - 使用 Powershell 使用查找文件递归重命名目录

linux - Linux g++ 中 MSVC++ _wrename 的等价物?

Python selenium webdriver 测试在 Windows XP 上大批量运行时导致 "serious error"

python - 如何使用相同的URL为GET和POST请求设置不同的permission_classes?

python - 选择两个日期之间的 Pandas 数据框行

Java File.renameTo(文件)不工作