我有多个具有统一列名的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)
答案 0 :(得分:1)
您可以使用str.replace
:
df.columns = df.columns.str.replace('(?<=EndOf)(\w+)(?=Status)', 'Month')
答案 1 :(得分:0)
您可以这样做:
df = pd.DataFrame({"A":[1,2,3], "EndOfApril":[2,3,4]})
df.rename(columns = { i: "EndOfMonth" for i in df.columns if i.startswith("EndOf") } )
输出:
A EndOfMonth
0 1 2
1 2 3
2 3 4