【问题标题】:drop multiindex level but keep names of columns - pandas删除多索引级别但保留列名 - 熊猫
【发布时间】:2017-11-21 12:24:15
【问题描述】:

我有一个看起来像这样的df

   a     b      c
              c1  c2
0  87    33   32  34
1  32    10   45  62
2  78    83   99  71

我想删除 c 级别,但保留所有其他列名

   a     b    c1  c2
0  87    33   32  34
1  32    10   45  62
2  78    83   99  71

df.columns = df.columns.droplevel(0) 有效,但 ab 的名称消失了

              c1  c2
0  87    33   32  34
1  32    10   45  62
2  78    83   99  71

【问题讨论】:

  • 你是怎么得到它的? pivot_table ?

标签: python pandas multi-index


【解决方案1】:

我认为你可以使用set_index + droplevel + reset_index

df = df.set_index(['a','b'])
df.columns = df.columns.droplevel(0)
df = df.reset_index()
print (df)
    a   b  c1  c2
0  87  33  32  34
1  32  10  45  62
2  78  83  99  71

['c'] 选择列的另一种解决方案:

df = df.set_index(['a','b'])['c'].reset_index()
print (df)
    a   b  c1  c2
0  87  33  32  34
1  32  10  45  62
2  78  83  99  71

但如果从pivot_table 获取solution 则删除[] 或添加参数values='c' 如果缺少。

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2017-09-21
    • 2020-03-11
    • 2019-05-03
    • 2015-11-23
    • 2020-12-05
    • 2015-01-03
    相关资源
    最近更新 更多