Pandas: diff와 함께 groupby를 사용하는 방법


다음 기본 구문을 사용하여 pandas에서 diff( ) 함수와 함께 groupby() 함수를 사용할 수 있습니다.

 df = df. sort_values (by=[' group_var1 ', ' group_var2 '])

df[' diff '] = df. groupby ([' group_var1 '])[' values_var ']. diff (). fillna ( 0 )

이 특정 예에서는 두 개의 특정 변수를 기준으로 DataFrame의 행을 정렬한 다음 group_var1 을 기준으로 그룹화하고 value_var 열의 행 간의 차이를 계산합니다.

fillna(0) 는 그룹 변수의 값이 DataFrame의 연속 라인 사이에서 변경될 때마다 팬더에게 0을 삽입하도록 지시합니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Pandas에서 diff와 함께 groupby를 사용하는 방법

서로 다른 날짜에 서로 다른 두 매장의 총 매출을 포함하는 다음과 같은 pandas DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' date ': pd. to_datetime (['2022-01-01', '2022-01-02',
                                           '2022-01-03', '2022-01-04',
                                           '2022-01-01', '2022-01-02',
                                           '2022-01-03', '2022-01-04']),
                   ' sales ': [12, 15, 24, 24, 14, 19, 12, 38]})

#view DataFrame
print (df)

  blind date sales
0 A 2022-01-01 12
1 A 2022-01-02 15
2 A 2022-01-03 24
3 A 2022-01-04 24
4 B 2022-01-01 14
5 B 2022-01-02 19
6 B 2022-01-03 12
7 B 2022-01-04 38

이제 매장별로 그룹화된 연속 날짜 간의 매출 값 차이를 포함하는 sales_diff 라는 새 열을 생성한다고 가정해 보겠습니다.

이를 위해 다음 구문을 사용할 수 있습니다.

 #sort DataFrame by store and date
df = df. sort_values (by=[' store ', ' date '])

#create new column that contains difference between sales grouped by store
df[' sales_diff '] = df. groupby ([' store '])[' sales ']. diff (). fillna ( 0 )

#view update DataFrame
print (df)

  store date sales sales_diff
0 A 2022-01-01 12 0.0
1 A 2022-01-02 15 3.0
2 A 2022-01-03 24 9.0
3 A 2022-01-04 24 0.0
4 B 2022-01-01 14 0.0
5 B 2022-01-02 19 5.0
6 B 2022-01-03 12 -7.0
7 B 2022-01-04 38 26.0

새로운 sales_diff 열에는 매장별로 그룹화된 연속 날짜 간의 매출 값 차이가 포함됩니다.

예를 들어 다음을 볼 수 있습니다.

  • 2022년 1월 1일과 2022년 2월 1일 사이에 매장 A의 매출 차이는 3 입니다.
  • 2022년 2월 1일과 2022년 3월 1일 사이에 매장 A의 매출 차이는 9 입니다.
  • 2022년 1월 3일과 2022년 1월 4일 사이에 매장 A의 매출 차이는 0 입니다.

등등.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas에서 GroupBy 합계를 수행하는 방법
Pandas에서 Groupby 및 Plot을 사용하는 방법
Pandas에서 GroupBy를 사용하여 고유한 값을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다