Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - Pandas DataFrame을 분 단위로 그룹화하는 방법은 무엇입니까?

<시간/>

groupby()를 사용하여 Pandas DataFrame을 그룹화합니다. 그룹화 기능을 사용하여 사용할 열을 선택합니다. 아래에 표시된 자동차 판매 기록의 예에 대해 분 단위로 그룹화하고 등록 가격 합계를 분 간격으로 계산합니다.

먼저 다음이 3개의 열이 있는 Pandas DataFrame이라고 가정해 보겠습니다. Date_of_Purchase를 Date_of_Purchase에 날짜와 시간을 모두 포함하여 타임스탬프로 설정했습니다. −

dataFrame =pd.DataFrame( { "자동차":["아우디", "렉서스", "테슬라", "메르세데스", "BMW", "도요타", "닛산", "벤틀리", "머스탱" ], "Date_of_Purchase":[ pd.Timestamp("2021-07-28 00:10:00"), pd.Timestamp("2021-07-28 00:12:00"), pd.Timestamp("2021- 07-28 00:15:00"), pd.Timestamp("2021-07-28 00:16:00"), pd.Timestamp("2021-07-28 00:17:00"), pd.Timestamp ("2021-07-28 00:20:00"), pd.Timestamp("2021-07-28 00:35:00"), pd.Timestamp("2021-07-28 00:42:00") , pd.Timestamp("2021-07-28 00:57:00"), ], "Reg_Price":[1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350] } 

그런 다음 Grouper를 사용하여 groupby 함수 내에서 Date_of_Purchase 열을 선택합니다. 빈도는 7분으로 설정됩니다. 즉, 7분 간격으로 그룹화됩니다. -

print"\n7분 단위로 데이터 프레임 그룹화...\n",dataFrame.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='7min')).sum()

예시

다음은 코드입니다 -

Pandas를 Date_of_PurchasedataFrame =pd.DataFrame( { "Car":["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota")으로 열 중 하나가 있는 pd# 데이터 프레임으로 가져오기 , "닛산", "벤틀리", "머스탱"], "Date_of_Purchase":[ pd.Timestamp("2021-07-28 00:10:00"), pd.Timestamp("2021-07-28 00:12 :00"), pd.Timestamp("2021-07-28 00:15:00"), pd.Timestamp("2021-07-28 00:16:00"), pd.Timestamp("2021-07- 28 00:17:00"), pd.Timestamp("2021-07-28 00:20:00"), pd.Timestamp("2021-07-28 00:35:00"), pd.Timestamp(" 2021-07-28 00:42:00"), pd.Timestamp("2021-07-28 00:57:00"), ], "Reg_Price":[1000, 1400, 1100, 900, 1700, 1800 1300, 1150, 1350] })print"DataFrame...\n",dataFrame# groupby functionprint 내에서 Date_of_Purchase 열을 선택하는 Grouperprint"\nGroup Dataframe을 7분 단위로 그룹화...\n",dataFrame.groupby(pd.Grouper( key='Date_of_Purchase', axis=0, freq='7min')).sum()

출력

이것은 다음과 같은 출력을 생성합니다 -

DataFrame... 자동차 Date_of_Purchase Reg_Price0 아우디 2021-07-28 00:10:00 10001 Lexus 2021-07-28 00:12:00 14002 Tesla 2021-07-28 00:15:0 ​​Mercedes-28 00:15:0 -28 00:16:00 9004 BMW 2021-07-28 00:17:00 17005 Toyota 2021-07-28 00:20:00 18006 Nissan 2021-07-28 00:35:02 Bentley-07-00 13 00:42:00 11508 머스탱 2021-07-28 00:57:00 1350데이터 프레임을 7분 단위로 그룹화... Reg_PriceDate_of_Purchase2021-07-28 00:07:00 2400.02081-07 00:21:00 NaN2021-07-28 00:28:00 NaN2021-07-28 00:35:00 1300.02021-07-28 00:42:00 1150.02021-07-28 000 00:56:00 1350.0