【问题标题】:Renaming dataframe columns with regex and dictionary使用正则表达式和字典重命名数据框列
【发布时间】:2020-08-01 03:20:51
【问题描述】:

我有一个这样的数据框:

code_0101    code_0102    code_0103    code_0104    ...
0            1            2            3            ...
...          ...          ...          ...

我还有一本字典:

{'0101': 'cirurgical_procedures', '0102': 'medical_care', '0103': 'remedy', ...}

我想将正则表达式应用于数据框列并替换我的字典中的代码编号,并得到如下内容:

code_cirurgical_procedures    code_medical_care       ...
0                             1                       ...
...                           ...

关于字典,我该如何执行这两个步骤,特别是第二个步骤?

【问题讨论】:

    标签: python regex pandas dataframe


    【解决方案1】:

    使用series.replace 替换并分配回列

    d = {'0101': 'cirurgical_procedures', '0102': 'medical_care', '0103': 'remedy'}
    df.columns = df.columns.to_series().replace(d, regex=True)
    
    Out[12]:
       code_cirurgical_procedures  code_medical_care  code_remedy  code_0104
    0                           0                  1            2          3
    

    【讨论】:

      【解决方案2】:

      假设code 作为前缀,您可以使用字典理解,

       cols = {'0101': 'cirurgical_procedures', '0102': 'medical_care', '0103': 'remedy'}
      
      df.rename(columns = {f"code_{k}": f"code_{v}" for k,v in cols.items()})
      

      【讨论】:

      • 谢谢!第一次看到听写理解
      • 但是为了好奇,如果每列的前缀都不一样,我该怎么办?
      猜你喜欢
      • 2021-08-27
      • 2021-09-09
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 2021-11-04
      • 2018-05-13
      • 2020-09-10
      相关资源
      最近更新 更多