Pandas에서 그룹당 오프셋을 계산하는 방법
다음 방법을 사용하여 Pandas DataFrame에서 그룹 이동 값을 계산할 수 있습니다.
방법 1: 그룹별 오프셋 계산
df[' lagged_values '] = df. groupby ([' group '])[' values ']. shift ( 1 )
방법 2: 여러 그룹의 오프셋 계산
df[' lagged_values '] = df. groupby ([' group1 ', ' group2 '])[' values ']. shift ( 1 )
Shift() 함수의 값은 이동을 계산할 값의 수를 나타냅니다.
다음 예에서는 각 방법을 실제로 사용하는 방법을 보여줍니다.
예시 1: 그룹별 오프셋 계산
연속된 날짜에 두 매장의 매출을 보여주는 다음과 같은 pandas DataFrame이 있다고 가정해 보겠습니다.
import pandas as pd #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' sales ': [18, 10, 14, 13, 19, 24, 25, 29]}) #view DataFrame print (df) blind sales 0 to 18 1 to 10 2 to 14 3 to 13 4 B 19 5 B 24 6 B 25 7 B 29
다음 구문을 사용하여 각 매장의 전날 매출을 표시하는 오프셋 열을 만들 수 있습니다.
#add column that displays lag of sales column by store df[' lagged_sales '] = df. groupby ([' store '])[' sales ']. shift ( 1 ) #view updated DataFrame print (df) store sales lagged_sales 0 to 18 NaN 1 to 10 18.0 2 A 14 10.0 3 A 13 14.0 4 B 19 NaN 5 B 24 19.0 6 B 25 24.0 7 B 29 25.0
결과를 해석하는 방법은 다음과 같습니다.
- 매장 A의 판매 열에 이전 값이 없으므로 오프셋 열의 첫 번째 값은 NaN 입니다.
- 오프셋 열의 두 번째 값은 매장 A에 대한 판매 열의 이전 값이므로 18 입니다.
등등.
예 2: 여러 그룹의 오프셋 계산
연속된 날짜에 두 매장 직원의 매출을 보여주는 다음과 같은 pandas DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' employee ':['O', 'O', 'R', 'R', 'O', 'O', 'R', 'R'], ' sales ': [18, 10, 14, 13, 19, 24, 25, 29]}) #view DataFrame print (df) store employee sales 0 AO 18 1 AO 10 2 AR 14 3 AR 13 4 BO 19 5 BO 24 6 BR 25 7 BR 29
다음 구문을 사용하여 각 매장의 각 직원에 대한 전날 매출을 표시하는 오프셋 열을 만들 수 있습니다.
#add column that displays lag of sales column by store and employee df[' lagged_sales '] = df. groupby ([' store ',' employee '])[' sales ']. shift ( 1 ) #view updated DataFrame print (df) store employee sales lagged_sales 0 AO 18 NaN 1 AO 10 18.0 2 AR 14 NaN 3 AR 13 14.0 4 BO 19 NaN 5 BO 24 19.0 6 BR 25 NaN 7 BR 29 25.0
새로운 lagged_sales 열에는 각 매장의 각 직원에 대한 전날 매출이 표시됩니다.
참고 : 이 예에서는 두 개의 열로 그룹화했지만, groupby() 함수에 원하는 만큼의 변수 이름을 포함하여 원하는 만큼의 열로 그룹화할 수 있습니다.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas에서 열을 삭제하는 방법
Pandas에서 열을 제외하는 방법
Pandas에서 선택한 열에 함수를 적용하는 방법
Pandas DataFrame에서 열 순서를 변경하는 방법