2017-06-19 88 views
1

我有一個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 
+0

你是如何得到它的?通過'pivot_table'? – jezrael

回答

2

我認爲你可以使用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_tablesolution得到它被刪除[]或添加參數values='c'如果失蹤。

+0

再次感謝您的幫助!您的解決方案非常好 – HappyPy

+0

很高興能幫到你,一天! – jezrael