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)

인덱스가 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 =['one ', 'two']print"DataFrame...\n",dataFrameprint"\n레벨 삭제...\n";dataFrame.columns =dataFrame.columns.droplevel(0)print"업데이트된 DataFrame..\n" ,dataFrameprint"\n다른 레벨 삭제 중...\n";dataFrame.columns =dataFrame.columns.droplevel(0)print"업데이트된 DataFrame..\n",dataFrame

출력

이것은 다음과 같은 출력을 생성합니다 -

 DataFrame ... 골 1 열 2 골 3 골 1 열 2 골 3 골 1 열 2 골 3one twocar valueA 0.425077 0.020606 1.148156 0.502863 1.184753 -1.720355 VALUE (단위 :십억) valueC 0.373106 1.300935 0.944725 0.593327 valueA -0.648708 -0.613921 -0.128404bike VALUE (단위 :십억) - 0.23844 -0.628065 0.910935TRUCK 0.910935TRUCK 0.478067 -1.000645 VALUEB 1.15179 -0.0.171433 -0.612346 -1.358061 0.735075 0.09275 0.092700DROPPING Revel ... 갱신 된 데이터 프레임 .. col 1 col 2 col 3 col 1 col 2 col 3one Twocar Valuea 0.425077 0.020606 1.148156 값B -1.720355 0.502863 1.184753 값C 0.373106 1.300935 -0.128404자전거 값A -0.128403 -0.8 값A -0.648708 0.97.5725 valueC 0.313042 -0.628065 0.910935truck valueA는 0.286377 0.478067 1.151793 -1.000645 VALUE (단위 :십억) -0.171433 -0.612346 -1.358061 0.735075 valueC가 valueA twocar ... 업데이트 DataFrame .. 안부 1 열 (2)의 골 3one을 다른 레벨 0.092700Dropping 0.425077 0.020606 1.148156 0.502863 1.184753 -1.720355 VALUE (단위 :십억) valueC 0.373106 valueA 1.300935 0.944725 0.593327 -0.648708 -0.128404bike VALUE (단위 :십억) -0.613921 -0.238730 -0.218448 -0.628065 0.910935truck valueC 0.313042 0.286377 0.478067 -1.000645 valueA VALUE (단위 :십억) 1.151793 -0.171433 -0.612346 -1.358061 valueC 0.735075 0.092700