我有多个具有统一列名的 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/