python pandas重命名列名startswith

2024-09-30 22:19:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

一个文件称为EndOfMarchStatus,另一个文件称为endofprilstatus,依此类推。在

我需要把列名改成只显示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)  

Tags: columns文件答案truestatusexcelreplace形式
2条回答

您可以使用str.replace

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

你可以这样做:

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") } )

输出:

^{pr2}$

相关问题 更多 >