【问题标题】:Rename columns dynamically Python动态重命名列 Python
【发布时间】:2023-01-30 18:34:02
【问题描述】:

我有一个包含以下列(大约 4000)的数据框:

QA1_1, Q8_r1_c3_1, Q19b_5_1 , ... , QA1_32, Q8_r1_c3_32, Q19b_5_32

我创建了两个词典,一个是我想在“_”之前用我的变量替换的名称,另一个是从 _1 到 _32 的相关结尾,例如:

dict_1 = {'QA1' : 'electric', 
          'Q8_r1_c3' : 'solar',
                    ...
           'Q19b_5' : 'urban'}

dict_2 = {'_1' : 'Restaurants',
          '_2' : 'Hotels',
                 ...
          '_32' : 'School'}

我的问题是:如何重命名我的列以与我的变量的一般名称以及相关的后缀一致

期望的最终结果:

electric_Restaurants , solar_Restaurants, urban_Restaurants , ... , electric_School , solar_School, urban_School

【问题讨论】:

  • 你能为数据框提供一些可重现的样本数据吗?

标签: python pandas dataframe rename


【解决方案1】:

使用str.replace

df.columns = df.columns.str.replace(r'(.*)_([^_]+)$', lambda m: f'{dict_1.get(m.group(1), m.group(1))}_{dict_2.get(m.group(2), m.group(2))}')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 2019-02-24
    • 2020-03-03
    • 2022-01-04
    • 2016-08-28
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    相关资源
    最近更新 更多