Để loại bỏ nhiều cấp độ từ chỉ mục cột nhiều cấp độ, hãy sử dụng các cột column.droplevel () nhiều lần. Chúng tôi đã sử dụng Multiindex.from_tuples () được sử dụng để tạo chỉ mục theo cột.
Đầu tiên, hãy tạo chỉ mục theo cột -
items =pd.MultiIndex.from_tuples ([("Col 1", "Col 1", "Col 1"), ("Col 2", "Col 2", "Col 2"), ("Col 3 "," Col 3 "," Col 3 ")])
Tiếp theo, tạo mảng đa chỉ mục và tạo khung dữ liệu đa chỉ mục -
arr =[np.array (['car', 'car', 'car', 'bike', 'bike', 'bike', 'truck', 'truck', 'truck']), np .array (['valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC'])] # tạo multiindex dataframedataFrame =pd.DataFrame (np.random.randn (9, 3), index =arr, column =items)
Gắn nhãn chỉ mục -
dataFrame.index.names =['level 0', 'level 1']
Giảm một cấp ở chỉ số 0 -
dataFrame.columns =dataFrame.columns.droplevel (0)
Chúng tôi đã xóa một cấp ở chỉ mục 0. Sau khi xóa, cấp 1 bây giờ là cấp 0. Để xóa một cấp khác, chỉ cần sử dụng lại ở trên, tức là
dataFrame.columns =dataFrame.columns.droplevel (0)
Sau đây là mã
Ví dụ
import numpy as npimport pandas as pditems =pd.MultiIndex.from_tuples ([("Col 1", "Col 1", "Col 1"), ("Col 2", "Col 2", "Col 2" ), ("Col 3", "Col 3", "Col 3")]) # multiindex arrayarr =[np.array (['car', 'car', 'car', 'bike', 'bike', 'bike', 'truck', 'truck', 'truck']), np.array (['valueA', 'valueB', 'valueC', 'valueA', 'valueB', 'valueC', 'valueA' , 'valueB', 'valueC'])] # tạo multiindex dataframedataFrame =pd.DataFrame (np.random.randn (9, 3), index =arr, column =items) # labeling indexdataFrame.index.names =['one ',' hai '] print "DataFrame ... \ n", dataFrameprint "\ nDropping a level ... \ n"; dataFrame.columns =dataFrame.columns.droplevel (0) print "Cập nhật DataFrame .. \ n" , dataFrameprint "\ nDropping một cấp độ khác ... \ n"; dataFrame.columns =dataFrame.columns.droplevel (0) print "Đã cập nhật DataFrame .. \ n", dataFrame
Đầu ra
Điều này sẽ tạo ra kết quả sau -
DataFrame ... Col 1 Col 2 Col 3 Col 1 Col 2 Col 3 Col 1 Col 2 Col 3one twocar valueA 0,425077 0,020606 1,148156 valueB -1,720355 0,502863 1,184753 valueC 0,373106 1.300935 -0.128404bike valueA -0.648708 0.944725 - 0.593327 value 0,238730 -0,218448 giá trịC 0,313042 -0,628065 0,910935 Giá trị trục A 0,286377 0,478067 -1,000645 giá trịB 1,151793 -0,171433 -0,612346 giá trịC -1,358061 0,735075 0,092700 Cắt một cấp ... Dữ liệu cập nhậtFrame .. Col 1 Col 2 Col 3 Col 3 Col 177 0,020606 1,148156 giá trịB -1,720355 0,502863 1,184753 giá trịC 0,373106 1.300935 -0.128404 giá trị xe A -0,648708 0,944725 0,593327 giá trịB -0,613921 -0,238730 -0,18448 giá trịC 0,313042 -0,628065 0,910935 giá trị trục A 0,286377 0,478067 -1,000645 giá trịB 1,151793 -0,171433 -0,612346 giá trịC -1,358061 0,735075 0,092700 Xoá cấp độ khác ... Dữ liệu cập nhật 1.300935 -0.128404 Giá trị xe máyA -0.648708 0.944725 0.593327 giá trịB -0.613921 -0.238730 -0.218448 giá trịC 0,313042 -0,628065 0,910935 Giá trị trung bìnhA 0,286377 0,478067 -1,000645 giá trịB 1,151793 -0,178061 giá trị 73501234627 73