Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python – Pandas 데이터 프레임의 다중 레벨 열 인덱스에서 레벨 삭제

<시간/>

다중 수준 열 인덱스에서 수준을 삭제하려면 columns.droplevel()을 사용합니다. Multiindex.from_tuples()를 사용하여 열 단위로 인덱스를 생성합니다.

처음에는 열 단위로 인덱스를 생성합니다. −

items =pd.MultiIndex.from_tuples([("열 1", "열 1", "열 1"),("열 2", "열 2", "열 2"),("열 3 ", "3열", "3열")])

다음으로 다중 인덱스 배열을 만들고 다중 인덱스 데이터 프레임을 형성합니다.

arr =[np.array(['자동차', '자동차', '자동차', '자전거', '자전거', '자전거', '트럭', '트럭', '트럭']), np .array(['valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC'])]# multiindex dataframedataFrame =pd.DataFrame 형성 중 (np.random.randn(9, 3), index=arr,columns=items)

색인에 레이블 지정 -

dataFrame.index.names =['레벨 0', '레벨 1']

인덱스 0에서 한 단계 떨어뜨리기 -

dataFrame.columns =dataFrame.columns.droplevel(0)

다음은 코드입니다.

numpy를 npimport로 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', '자전거', '트럭', '트럭', '트럭']),np.array(['값A', '값B', '값C', '값A', '값B', '값C', '값A' , 'valueB', 'valueC'])]# 다중 인덱스 형성 dataframedataFrame =pd.DataFrame(np.random.randn(9, 3), index=arr,columns=items)# labeling indexdataFrame.index.names =['level 0', '레벨 1']print"DataFrame...\n",dataFrameprint"\n레벨 삭제...\n";dataFrame.columns =dataFrame.columns.droplevel(0)print"업데이트된 DataFrame..\ n", 데이터 프레임

출력

그러면 다음과 같은 출력이 생성됩니다.

DataFrame... Col 1 Col 2 Col 3 Col 1 Col 2 Col 3 Col 1 Col 2 Col 3level 0 level 1car valueA 1.691127 0.315145 -0.695925 valueB -0.695925 valueB -2.077182 -2.027643 -0.542396 valueB -2.077182 -2.027643 -0.542396 0.119615 -0.520491 -0.746547 valuec 1.85688 -0.491540 -1.754604Truck Valuea 0.829854 -0.204102 -1.130511 -2.141692 -1.2.141639 -1.298278 레벨을 업데이트 ... col 1 Col 2 Col 3 Col 1 COL 2 COL 3LEVEL 0 레벨 1CAR VALUEA 1.691127 0.315145 -0.691127 ValueB -2.077182 -2.027643 -0.523965 Valuec 1.021402 -0.384421 0.640215Bike Valuea -2.271217 0.197185 0.304847 ValueB 0.119615 -0.520491 -0.746547 값C 1.856888 -0.491540 -1.754604트럭 값A 0.829854 -0.204102 -1.130511 값B 0.310692 0.119087 -0.9 값24491