반응형
pivot table
- pivot table은 데이터 프레임의 인덱스와 컬럼을 원하는대로 조정할 수 있다.
- 데이터프레임 내에 존재하는 컬럼값을 인덱스로 설정해 그루핑하고, 컬럼을 컬럼 내 데이터별로 나눌 수도 있다.
A B C D E
0 foo one small 1 2
1 foo one large 2 4
2 foo one large 2 5
3 foo two small 3 5
4 foo two small 3 6
5 bar one large 4 6
6 bar one small 5 8
7 bar two small 6 9
8 bar two large 7 9
- 이와 같은 데이터가 있다고 하자.
import pd
dfr = pd.pivot_table(df, index=['A','B'], columns='C', values='E')
print(dfr)
C large small
A B
bar one 6.0 8.0
two 9.0 9.0
foo one 4.5 2.0
two NaN 5.5
- 해당 데이터 컬럼 중에 어떤 컬럼들을 인덱스로 활용할지, 어떤 컬럼들을 컬럼으로 삼을지 정할 수 있다. 그리고 화면에 표시할 value값이 무엇인지도 정할 수 있다.
- 즉, 인덱스와 컬럼의 데이터가 겹치는 부분에 어떤 데이터가 존재하는지 결정할 수 있는 것이다.
- 데이터가 겹칠 경우 default로 평균값을 출력한다. 하지만 이는 aggfunc=np.mean과 같이 옵션을 주어 어떤 값을 출력할지 결정할 수 있다.
- 위의 데이터에서는 A와 B를 인덱스로 삼아 멀티인덱싱하였고, C를 칼럼으로 정해 E값을 표시했다.
- cf. groupby를 사용할 때와 다르게 인덱스부분뿐만 아니라 칼럼부분도 멀티인덱싱(?) 할 수 있다. 원리는 인덱스의 멀티인덱싱과 같기 때문에 설명은 생략하겠다.
- cf. 존재하지 않는 값은 NaN으로 표시되지만, fill_value= 옵션을 활용해 NaN에 무엇이 들어갈지 결정할 수 있다.
반응형
'🛠 기타 > Data & AI' 카테고리의 다른 글
파이썬 토크나이저 - stop words (nltk) (0) | 2020.07.17 |
---|---|
파이썬 토크나이저 - 어간 찾기 (nltk) (0) | 2020.07.17 |
Pandas 데이터프레임 데이터 별 함수적용 (0) | 2020.07.16 |
Pandas 데이터프레임 멀티 인덱싱 (0) | 2020.07.16 |
[scikit-learn 라이브러리] joblib (pickle 객체 저장) (0) | 2020.07.15 |