728x90
Aggregate using one or more operations over the specified axis.
자세한 사용법은 판다스 공식 문서에서 확인 가능하다.
데이터 프레임
# 데이터프레임 구조
df.sample()
학교명 지역 설립구분 1학년 2학년 3학년 4학년 5학년 6학년
4183 청소초등학교 충청남도 공립 1 1 1 1 1 1
df.iloc[:,3:9].agg(['sum','min','max','mean'])
1학년 2학년 3학년 4학년 5학년 6학년
sum 19145.000000 18909.000000 20443.000000 20014.000000 19924.000000 19298.000000
min 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
max 15.000000 13.000000 14.000000 13.000000 13.000000 12.000000
mean 3.034554 2.997147 3.240292 3.172294 3.158028 3.058805
반환되는 데이터프레임에서는 인덱스에 함수명들이 들어가고 그에 대한 결과가 값으로 채워지는 것을 확인
그룹화 활용
class_ = df.groupby(by='지역')['1학년','2학년','3학년','4학년','5학년','6학년','총계'].agg(['mean','max'])
class_
1학년 2학년 3학년 4학년 5학년 6학년 총계
mean max mean max mean max mean max mean max mean max mean max
지역
강원도 1.665775 8 1.684492 9 1.874332 9 1.858289 9 1.863636 8 1.847594 8 193.521390 1243
경기도 3.775112 15 3.611694 12 3.931784 14 3.814093 12 3.784858 12 3.641679 11 572.653673 1971
경상남도 2.652672 12 2.639313 11 2.853053 13 2.793893 12 2.809160 11 2.692748 10 361.005725 1878
경상북도 1.879684 12 1.956607 11 2.096647 11 2.045365 11 2.001972 10 1.938856 9 252.289941 1817
데이터프레임의 agg 메소드와는 다르게 함수명이 컬럼명으로 설정이 된다.
sum, mean, min, max 이외 람다를 활용하여 원하는 함수를 적용할 수 있다.
customer_df = df.groupby('CustomerID').agg({'Sales': sum, 'InvoiceNo': lambda x: x.nunique()})
customer_df
Sales InvoiceNo
CustomerID
12347.0 711.79 1
12348.0 892.80 1
12370.0 1868.02 2
12377.0 1001.52 1
12383.0 600.72 1
... ... ...
18239.0 438.10 1
18245.0 365.73 1
18259.0 376.30 1
18260.0 230.70 1
18269.0 168.60 1
각 컬럼에 함수를 지정할 수 있다.
컬럼 명도 보기좋게 변경가능하다.
customer_df.columns = ['TotalSales', 'OrderCount']
TotalSales OrderCount AvgOrderValue
CustomerID
12347.0 711.79 1 711.790
12348.0 892.80 1 892.800
12370.0 1868.02 2 934.010
12377.0 1001.52 1 1001.520
12383.0 600.72 1 600.720
12386.0 258.90 1 258.900
12395.0 679.92 2 339.960
12417.0 291.34 1 291.340
12423.0 237.93 1 237.930
12427.0 303.50 1 303.500
12429.0 1281.50 1 1281.500
12431.0 773.95 2 386.975
12433.0 3787.12 2 1893.560
12441.0 173.55 1 173.550
12471.0 3874.36 4 968.590
'Language > 파이썬' 카테고리의 다른 글
파이썬 판다스 - 크롤링으로 얻은 csv 파일들을 concat으로 모두 합치기 (2) | 2021.09.10 |
---|---|
파이썬 '판다스 데이터 분석' - 시계열 데이터 (0) | 2021.07.31 |
파이썬 판다스 sidetable : df.stb.freq(..) - Create Simple Summary Tables in Pandas, 합계와 빈도수 (0) | 2021.07.27 |
파이썬 '판다스 데이터 분석' - 데이터프레임에 함수 적용 .apply() (0) | 2021.07.25 |
파이썬 '판다스 데이터 분석' - 정규화 MinMax, Standard (0) | 2021.07.23 |
댓글