Pandas dataframe에서 주별로 그룹화하는 방법(예제 포함)
다음 기본 구문을 사용하여 Pandas DataFrame에서 행을 주별로 그룹화할 수 있습니다.
#convert date column to datetime and subtract one week df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ') #calculate sum of values, grouped by week df. groupby ([pd. Group (key=' date ', freq=' W ')])[' values ']. sum ()
이 특정 공식은 날짜 열의 행을 주별로 그룹화하고 DataFrame의 값 열에 대한 값의 합계를 계산합니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: Pandas에서 주별로 그룹화하는 방법
다양한 날짜에 회사의 매출을 보여주는 다음과 같은 pandas DataFrame이 있다고 가정해 보겠습니다.
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start='1/5/2022', freq='D', periods=15),
' sales ': [6, 8, 9, 5, 4, 8, 8, 3, 5, 9, 8, 3, 4, 7, 7]})
#view DataFrame
print (df)
dirty date
0 2022-01-05 6
1 2022-01-06 8
2 2022-01-07 9
3 2022-01-08 5
4 2022-01-09 4
5 2022-01-10 8
6 2022-01-11 8
7 2022-01-12 3
8 2022-01-13 5
9 2022-01-14 9
10 2022-01-15 8
11 2022-01-16 3
12 2022-01-17 4
13 2022-01-18 7
14 2022-01-19 7
관련 항목:Pandas에서 날짜 범위를 만드는 방법
다음 구문을 사용하여 주별로 그룹화된 매출 합계를 계산할 수 있습니다.
#convert date column to datetime and subtract one week df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ') #calculate sum of values, grouped by week df. groupby ([pd. Group (key=' date ', freq=' W ')])[' sales ']. sum () date 2022-01-02 32 2022-01-09 44 2022-01-16 18 Freq: W-SUN, Name: sales, dtype: int64
결과를 해석하는 방법은 다음과 같습니다.
- 2022년 1월 2일 이후부터 시작하는 주 동안 총 32 건의 판매가 발생했습니다.
- 2022년 1월 9일 이후부터 일주일 동안 총 44 건의 판매가 있었습니다.
- 2022년 1월 16일 이후부터 일주일 동안 총 18 건의 판매가 이루어졌습니다.
기본적으로 팬더는 주가 일요일 다음 날( W-SUN )에 시작한다고 가정합니다.
그러나 설명서 에 따르면 Freq 에 대해 이 값을 변경할 수 있습니다.
예를 들어, 매주 월요일 다음 날(예: 화요일)부터 시작하도록 하려면 Freq=W-MON을 지정할 수 있습니다.
유사한 구문을 사용하여 주별로 그룹화된 최대 판매액을 계산할 수 있습니다.
#convert date column to datetime and subtract one week df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ') #calculate max of values, grouped by week df. groupby ([pd. Group (key=' date ', freq=' W ')])[' sales ']. max () date 2022-01-02 9 2022-01-09 9 2022-01-16 7 Freq: W-SUN, Name: sales, dtype: int64
결과를 해석하는 방법은 다음과 같습니다.
- 2022년 1월 2일 이후부터 시작하는 주 동안 일일 최대 판매량은 9 입니다.
- 2022년 1월 9일 이후부터 일주일간 하루 최대 판매 건수는 9건 입니다.
- 2022년 1월 16일 이후부터 일주일간 하루 최대 판매 건수는 7건 입니다.
참고 : 여기에서 pandas의 groupby 작업에 대한 전체 문서를 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas DataFrame에서 월별로 그룹화하는 방법
Pandas DataFrame에서 날짜별로 그룹화하는 방법
Pandas에서 Groupby를 사용하고 조건부로 계산하는 방법