Chapter 8. 데이터 준비하기: 조인, 병합, 변형 (1)

2022. 3. 14. 22:50개인활동/파이썬 라이브러리를 활용한 데이터 분석

반응형

계층적 색인

: 축에 대해 다중 색인 단계를 지정할 수 있도록 해줌

  • 높은 차원의 데이터를 낮은 차원의 형식으로 다룰 수 있게 해주는 기능
data = pd.Series(np.random.randn(9),
				index=[['a', 'a', 'a', 'b', 'b', 'c', 'c', 'd', 'd'],
				[1, 2, 3, 1, 3, 1, 2, 2, 3]])
data

 

  • 위의 객체가 MultiIndex를 색인으로 하는 Series로 색인 계층을 보여줌
data.index

  • 계층적으로 색인된 객체는 데이터의 부분집합을 부분적 색인으로 접근하는 것이 가능함
data['b']

data.loc[['b', 'd']]

  • 하위 계층의 객체를 선택하는 것도 가능
data.loc[:, 2]  # 상위 계층의 경우 :를 이용해 전범위를 다룸

  • 데이터 재형성, 피벗테이블 생성같은 그룹기반의 작업을 할 때 중요하게 사용됨
    • unstack 메서드를 사용해 데이터를 새롭게 배열할 수 있음
    data.unstack()
    

    • unstack의 반대 작업은 stack 메서드
    data.unstack().stack()
    

    • stack 메서드와 unstack 메서드의 자세한 내용은 추후에 알아보자
  • DataFrame에서는 low와 col 모두 계층적 색인을 가질 수 있음
frame = pd.DataFrame(np.arange(12).reshape((4, 3)),
                     index=[['a', 'a', 'b', 'b'], [1, 2, 1, 2]],
                     columns=[['ohio', 'ohio', 'colorado'],
                              ['green', 'red', 'green']])
frame

  • 계층적 색인의 각 단계는 이름을 가질 수 있고, 이름을 가지고 있다면 출력시 함께 나타남
frame.index.names=['key1', 'key2']
frame.columns.names=['state', 'color']
frame

  • column의 부분적 색인으로 접근하기
frame['ohio']

반응형