2013-10-20 23 views
2

列標題是否有reset_index等價物?換句話說,如果列名是MultiIndex,我將如何刪除其中一個關卡?Pandas DataFrame.reset_index列

+1

刪除一列,或移動到索引(作爲一行)?我認爲沒有一種簡單的方法可以將索引移動到.T ... –

+0

這個想法是將給定級別的列名稱的MultiIndex移動到DataFrame作爲一個新行(或者可選地只是完全放棄)。 –

+0

也許一個更簡單的問題是如何簡單地刪除列名中的層次結構級別? –

回答

3

回答了第二個問題:

df.columns = df.columns.droplevel(level) 

第一個問題是@AndyHayden指出不是直線前進。只有在列名稱與列值相同的情況下才有意義。

3

這裏是把你列到元組,而不是一個非常愚蠢的辦法:

df.columns = list(df.columns) 

您可以以此爲基礎得到任何你想要的,例如,如果你有一個2級MultiIndex,去除最外面的水平,你可能只是做:

df.columns = [col[1] for col in df.columns] 

你不能這樣做花哨的索引上迭代,因爲它產生的元組,但你可以做這樣的事情:

df.columns = MultiIndex.from_tuples([col[1:] for col in df.columns] 

所以你有一些選擇。