2025.02.24 - [프로그래밍/Python 관련 정보] - [Pandas] Table of Contents
판다스 DataFrame에서 데이터를 처리할 때, 칼럼 별로 다른 집계를 사용한다든가 한 칼럼에 여러 집계를 하고 싶을 때가 있습니다. SQL로 비유하자면 id별 groupby 후 select를 할 때 avg(A_col), sum(B_col), avg(B_col) 을 한꺼번에 계산하는 상황을 떠올리면 될 것 같습니다.
이 때는 agg()를 활용해주면 됩니다.
더보기
import pandas as pd
data = {
'카테고리': ['A', 'B', 'A', 'B', 'C', 'A', 'C'],
'값1': [10, 20, 30, 40, 50, 60, 70],
'값2': [100, 200, 300, 400, 500, 600, 700]
}
df = pd.DataFrame(data)
print(df)
한 칼럼에 여러 집계함수를 적용해 주고 싶으면
df.groupby('카테고리').agg(['mean', 'sum'])
값1 값2
mean sum mean sum
카테고리
A 33.333333 100 333.333333 1000
B 30.000000 60 300.000000 600
C 60.000000 120 600.000000 1200
각각의 열에 대해서 다른 집계함수를 적용해주고 싶으면
df.groupby('카테고리').agg({'값1': 'sum', '값2': 'mean'})
값1 값2
카테고리
A 100 333.333333
B 60 300.000000
C 120 600.000000
와 같이 사용해주면 됩니다.
참고로 lambda함수를 써서 커스터마이징도 가능합니다.
df.groupby('카테고리').agg({'값1': lambda x: x.max() - x.min(), '값2': 'sum'})
'프로그래밍 > Python 관련 정보' 카테고리의 다른 글
[Algorithm] Depth/Breadth First Search (0) | 2025.02.11 |
---|---|
[Pandas] Groupby + (Transform/Filter/Apply함수) (1) | 2025.02.05 |
[Python Programming 기초] Copy의 종류 (3) | 2025.02.05 |
[Python - Frequently Used Code] pandas DataFrame 문자열 대체 (1) | 2025.02.04 |
[Python - Frequently Used Code] Random 패키지 (4) | 2024.12.18 |