-
파이썬 Pandas DataFrame .groupby.apply vsv .agg<Python>/[DataFrame] 2023. 3. 8. 15:52728x90
그룹별로 데이터를 처리해야 하는 경우가 종종 있습니다. Pandas DataFrame에서는 groupby 함수를 이용해 그룹별로 데이터를 묶은 후 처리할 수 있습니다. 이번에는 groupby 함수를 이용해 그룹별로 정렬 및 값을 추가하는 방법에 대해 알아보겠습니다.
(1) 그룹별로 x 칼럼을 기준으로 내림차순 정렬하기 groupby 함수를 이용해 데이터를 그룹화한 후 apply 함수를 이용해 그룹별로 정렬을 수행할 수 있습니다. 아래 예제는 group 칼럼을 기준으로 x 칼럼을 내림차순 정렬하는 코드입니다.
import pandas as pd # 예제 데이터 생성 df = pd.DataFrame({'group': ['A', 'A', 'B', 'B'], 'x': [3, 1, 2, 4]}) # 그룹별로 x 칼럼을 기준으로 내림차순 정렬 df_sorted = df.groupby('group').apply(lambda x: x.sort_values('x', ascending=False)).reset_index(drop=True) print(df_sorted)
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
group x 0 A 3 1 A 1 2 B 4 3 B 2
(2) 그룹별로 y 칼럼의 첫번째 값, 마지막 값을 DataFrame에 칼럼 추가하기 groupby 함수와 agg 함수를 이용하면 그룹별로 여러 개의 값을 계산하고 DataFrame에 추가할 수 있습니다. 아래 예제는 group 칼럼을 기준으로 y 칼럼의 첫번째 값과 마지막 값을 계산하여 DataFrame에 'y_first'와 'y_last' 칼럼을 추가하는 코드입니다.
import pandas as pd # 예제 데이터 생성 df = pd.DataFrame({'group': ['A', 'A', 'B', 'B'], 'y': [10, 20, 30, 40]}) # 그룹별로 y 칼럼의 첫번째 값, 마지막 값을 DataFrame에 추가하기 df_agg = df.groupby('group').agg({'y': ['first', 'last']}).reset_index() df_agg.columns = ['group', 'y_first', 'y_last'] print(df_agg)
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
group y_first y_last 0 A 10 20 1 B 30 40
이와 같이 groupby 함수와 다양한 함수를 조합하여 그룹별로 데이터를 처리할 수 있습니다.
728x90'<Python> > [DataFrame]' 카테고리의 다른 글
파이썬 Pandas DataFrame 결측치 회귀모형 추정값으로 채우기 (0) 2023.03.08 파이썬 Pandas DataFrame 칼럼 순서를 변경 (0) 2023.03.08 파이썬 Pandas DataFrame .groupby (0) 2023.03.08 파이썬 Pandas DataFrame .any vs .all (0) 2023.03.08 파이썬 Pandas DataFrame .loc vs .iloc (0) 2023.03.08