【问题标题】:Remove duplicate columns for multi-level headers in Pandas删除 Pandas 中多级标题的重复列
【发布时间】:2022-12-23 17:39:49
【问题描述】:

我用df = pd.read_excel('data.xlsx', header=[0, 1], sheet_name='Sheet1')读了一个excel文件data

         name cpi icpi CPI
         freq M D M
0 2021-02-21 -9.8 31.524 9.806
1 2021-02-22 -5.6 30.777 9.164
2 2021-02-23 3.5 29.318 7.841
3 2021-02-24 -1.1 29.209 7.570
4 2021-02-25 -2.7 29.074 7.467

我希望2层标题中具有相同namefreq的列可以被视为重复数据, 并且可以删除这些列。我怎样才能做到这一点?

print(df.columns.get_level_values(0))
print(df.columns.to_flat_index())
Index(['name', 'cpi', 'icpi', 'CPI'], dtype='object')
Index([('name', 'freq'), ('cpi', 'M'), ('icpi', 'D'), ('CPI', 'M')], dtype='object')

预期结果:

        name  cpi    icpi
        freq    M       D
0 2021-02-21 -9.8  31.524
1 2021-02-22 -5.6  30.777
2 2021-02-23  3.5  29.318
3 2021-02-24 -1.1  29.209
4 2021-02-25 -2.7  29.074

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    采用:

    df = df.loc[:, ~df.columns.duplicated()]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-04
      • 2013-02-05
      • 2020-06-12
      • 1970-01-01
      • 2014-09-27
      • 2014-07-03
      相关资源
      最近更新 更多