【问题标题】:python pandas renaming column name startswithpython pandas重命名列名以开头
【发布时间】:2019-08-13 13:44:33
【问题描述】:

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

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

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

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

我尝试过但没有成功的事情是:

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)  

【问题讨论】:

    标签: python pandas rename wildcard startswith


    【解决方案1】:

    你可以使用str.replace:

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

    【讨论】:

      【解决方案2】:

      你可以这样做:

      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
      

      【讨论】:

        猜你喜欢
        • 2019-07-21
        • 2018-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-05
        • 2021-04-24
        • 2020-05-10
        • 1970-01-01
        相关资源
        最近更新 更多