อีกวิธีในการดร็อปดัชนีคือการใช้ list comprehension:
df.columns = [col[1] for col in df.columns]
b c
0 1 2
1 3 4
กลยุทธ์นี้ยังมีประโยชน์หากคุณต้องการรวมชื่อจากทั้งสองระดับเช่นในตัวอย่างด้านล่างซึ่งระดับล่างประกอบด้วยสอง 'y's:
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
การลดระดับบนสุดจะทำให้คอลัมน์สองคอลัมน์มีดัชนี 'y' ที่สามารถหลีกเลี่ยงได้โดยการเข้าร่วมชื่อกับรายการความเข้าใจ
df.columns = ['_'.join(col) for col in df.columns]
A_x A_y B_y
0 1 2 8
1 3 4 9
นั่นเป็นปัญหาที่ฉันมีหลังจากทำกลุ่มโดยใช้เวลาสักครู่เพื่อค้นหาคำถามอื่นที่แก้ไข ฉันปรับแก้ปัญหานั้นให้ตรงกับกรณีเฉพาะที่นี่