반응형
데이터 프레임에서 집계하여 활용하는 다양한 방법 모음
활용 예시 데이터셋
import pandas as pd
import numpy as np
raw_data = {'id':['id1', 'id2', 'id3','id2', 'id3'],
'data1':[34,12,5,45,67],
'data2':[1234,3255,3245,4356,7032]}
df = pd.DataFrame(raw_data)
print(df)
>>> print(df)
id data1 data2
0 id1 34 1234
1 id2 12 3255
2 id3 5 3245
3 id2 45 4356
4 id3 67 7032
1. 간단한 집계
sum(), count(), min(), max(), mean(), median() 둥....
# 특정 컬럼(id) 하나를 기준으로 합계 구하기
print(df.groupby('id').sum())
>>> print(df.groupby('id').sum())
data1 data2
id
id1 34 1234
id2 57 7611
id3 72 10277
# 여러 컬럼(id, data1) 순서대로 합계 구하기
print(df.groupby(['id', 'data1']).sum())
>>> print(df.groupby(['id', 'data1']).sum())
data2
id data1
id1 34 1234
id2 12 3255
45 4356
id3 5 3245
67 7032
2. 함수 여러 개를 한번에 집계하기
# 특정 컬럼(id)를 기준으로 최소값, 합계, 최대값 구하기
# 입력시 str, 함수명으로 모두 작성 가능함
print(df.groupby('id').aggregate([min, np.sum, 'max']))
>>> print(df.groupby('id').aggregate([min, np.sum, 'max']))
data1 data2
min sum max min sum max
id
id1 34 34 34 1234 1234 1234
id2 12 57 45 3255 7611 4356
id3 5 72 67 3245 10277 7032
# 특정 컬럼(id)를 기준으로 컬럼 하나는 최소값, 다른 컬럼은 최대값 구하기
print(df.groupby('id').aggregate({'data1':'min', 'data2':'max'}))
>>> print(df.groupby('id').aggregate({'data1':'min', 'data2':'max'}))
data1 data2
id
id1 34 1234
id2 12 4356
id3 5 7032
3. 특정 조건으로 집계하기
groupby에 조건 넣기filter 로 특정 조건의 데이터만 뽑기
apply 와 lambda 로 컬럼간 계산된 값 구하기
# 특정 컬럼이 특정 값 이상의 여부에 따라 집계하기
# data1이 60이상일때의 합계와 60미만일 때의 합계 구하기
print(df.groupby(df['data1'] > 60).sum())
>>> print(df.groupby('id').aggregate({'data1':'min', 'data2':'max'}))
data1 data2
id
id1 34 1234
id2 12 4356
id3 5 7032
# 특정 컬럼이 특정 값 이상일 때의 데이터 추출하기
# data1이 60 이상일 때의 데이터 확인하기
def select_sixty_upper(x):
return x['data1'] > 60
print(df.groupby('data1').filter(select_sixty_upper))
>>> print(df.groupby('data1').filter(select_sixty_upper))
id data1 data2
4 id3 67 7032
# 특정 컬럼을 기준으로 데이터들 간의 계산된 값 구하기
print(df.groupby('id').apply(lambda x : x.max() - x.min()))
>>> print(df.groupby('id').apply(lambda x : x.max() - x.min()))
data1 data2
id
id1 0 0
id2 33 1101
id3 62 3787
반응형
'프로그래밍 언어 > python 관련' 카테고리의 다른 글
[에러 해결하기] Consider using the `--user` option or check the permissions. (1) | 2022.11.25 |
---|---|
[pandas] loc 와 iloc의 간단 명료한 차이 설명 (0) | 2021.08.01 |
[프로그램 개념 정리] 함수(매개변수, 인자), 메서드, 패키지, 라이브러리 개념 정리. 더이상 혼동하지 말자! (0) | 2021.08.01 |
아나콘다 가상환경 기본 모음 (0) | 2020.04.06 |
[python] cuda/pytorch 설치 (0) | 2019.07.23 |