我有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)
有效但a
和b
的名称消失了
c1 c2
0 87 33 32 34
1 32 10 45 62
2 78 83 99 71
答案 0 :(得分:3)
我认为您可以使用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'
。