0. pandas groupby
A groupby operation involves some combination of splitting the object, applying a function, and combining the results. This can be used to group large amounts of data and compute operations on these groups.
pandas groupby 메소드는 전체 데이터를 그룹별로 나누고(splitting), 각 그룹별로 동일한 함수를 적용하고(applying), 그 결과를 하나로 합쳐(combine) 결과를 return 한다.
- pandas groupby documentation
- pandas groupby user guide(여기 참고하면 많은 도움이 된다.)
1. groupby를 활용한 그룹별 데이터 목록 얻기
다음과 같은 데이터가 있다고 하자.
df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})
a b
0 A 1
1 A 2
2 B 5
3 B 5
4 B 4
5 C 6
이때 각 그룹($A,B,C$)별로 항목 $b$에 대한 목록을 얻고 싶다. 이때 데이터를 그룹별로 묶고 list를 적용해주면 된다.
df.groupby('a')['b'].apply(list)
a
A [1, 2]
B [5, 5, 4]
C [6]
Name: b, dtype: object
항목별 목록에 대한 새로운 column을 지정해서 사용하면 된다.
df1 = df.groupby('a')['b'].apply(list).reset_index(name='new')
a new
0 A [1, 2]
1 B [5, 5, 4]
2 C [6]
[reference]
- stackoverflow(링크)
728x90
'python 메모' 카테고리의 다른 글
[tqdm] tqdm에서 새로운 라인 없이 한 라인으로 출력하기 (2) | 2021.03.24 |
---|---|
[numpy] stack 결과 (0) | 2021.03.17 |
[pandas] 배열에 포함된 row만 남기기 (0) | 2021.03.15 |
[pandas] 다중 컬럼(multiple columns) apply 사용하기 (0) | 2021.03.10 |
jupyter notebook 자주 쓰는 명령어 (0) | 2020.07.27 |