Published 2021. 10. 1. 20:33
728x90
반응형

apply, lambda

groupby를 통해서 묶인 데이터에 함수 적용

df.groupby('key').apply(lambda x: x.max() - x.min()) # groupby로 묶고 최대값-최소값

get_group

groupby로 묶인 데이터에서 key값으로 데이터를 가져올 수 있음

df = pd.read_csv("./univ.csv")

# 상위 5개 데이터
df.head()

# 데이터 추출
df.groupby("시도").get_group("충남")
len(df.groupby("시도").get_group("충남")) # 결과 : 94

 


예제 👇

aggregate 메소드에 함수를 매개변수로 넣어줄 때, min, max, mean, count 등의 특정 함수들은 문자열 형태로 넘겨줄 수 있음

import numpy as np
import pandas as pd

df = pd.DataFrame({
    'key': ['A', 'B', 'C', 'A', 'B', 'C'],
    'data1': [0, 1, 2, 3, 4, 5],
    'data2': [4, 4, 6, 0, 6, 1]
})
print("DataFrame:")
print(df, "\n")
'''
DataFrame:
  key  data1  data2
0   A      0      4
1   B      1      4
2   C      2      6
3   A      3      0
4   B      4      6
5   C      5      1 
'''

# aggregate를 이용하여 요약 통계량을 산출해봅시다.
# 데이터 프레임을 'key' 칼럼으로 묶고, data1과 data2 각각의 최솟값, 중앙값, 최댓값을 출력하세요.
print(df.groupby('key').aggregate([min, np.median, max]))
'''
    data1            data2           
      min median max   min median max
key                                  
A       0    1.5   3     0    2.0   4
B       1    2.5   4     4    5.0   6
C       2    3.5   5     1    3.5   6
'''

# 데이터 프레임을 'key' 칼럼으로 묶고, data1의 최솟값, data2의 합계를 출력하세요.
print(df.groupby('key').aggregate({'data1' : 'min', 'data2' : np.sum}))
'''
     data1  data2
key              
A        0      4
B        1     10
C        2      7
'''
반응형

'프로그래밍 > Python' 카테고리의 다른 글

Matplotlib Bar&Histogram  (0) 2021.10.06
Matplotlib 그래프  (0) 2021.10.05
Pandas groupby (1)  (0) 2021.09.30
Pandas 집계함수  (0) 2021.09.29
Pandas 데이터프레임 정렬  (0) 2021.09.28
복사했습니다!