Cara lain untuk menjatuhkan indeks adalah dengan menggunakan pemahaman daftar:
df.columns = [col[1] for col in df.columns]
b c
0 1 2
1 3 4
Strategi ini juga berguna jika Anda ingin menggabungkan nama-nama dari kedua level seperti pada contoh di bawah ini di mana level bawah berisi dua 'y:
cols = pd.MultiIndex.from_tuples([("A", "x"), ("A", "y"), ("B", "y")])
df = pd.DataFrame([[1,2, 8 ], [3,4, 9]], columns=cols)
A B
x y y
0 1 2 8
1 3 4 9
Menjatuhkan level atas akan meninggalkan dua kolom dengan indeks 'y'. Itu bisa dihindari dengan bergabung dengan nama-nama dengan daftar pemahaman.
df.columns = ['_'.join(col) for col in df.columns]
A_x A_y B_y
0 1 2 8
1 3 4 9
Itu masalah yang saya miliki setelah melakukan groupby dan butuh beberapa saat untuk menemukan pertanyaan lain yang menyelesaikannya. Saya menyesuaikan solusi itu dengan kasus spesifik di sini.