반응형
시계열 데이터를 만지다보면 빈 값도 있고,
term이 제각각인 경우도 있다.
만약 time step이 1초라면 데이터도 어마어마하게 많을테니 이를 효과적으로 줄여보자.
import pandas as pd
import random
df = pd.DataFrame()
df['Time'] = pd.date_range('2021-01-01','2021-01-02',freq='1S')
df['Color'] = random.choices(['Red','Blue','Green','White'], k=len(df))
df['Value'] = 1
위와 같이 데이터를 만들어보자. 무의식적으로 날짜를 적다보니 2021년 1월로 정했다.
코시국때문에 새해지만 새해같지않다.
각설하고 86401개의 데이터가 만들어지고, 색상과 Value가 추가된다.
TIme | Color | Value |
2021-01-01 00:00:00 | Red | 1 |
. | . | . |
. | . | . |
. | . | . |
2021-01-02 00:00:00 | White | 1 |
대충 이런모양.
이 데이터를 1시간 단위로 그룹지어서 각 색상이 몇 번 있는지 확인해보자.
df = df.groupby([pd.Grouper(key='Time',freq='1H'),'Color'])['Value'].agg('sum')
print(df)
위와같이 한시간단위로 그룹지어서 출력된다.
agg에 입력되는 sum, mean, min, max 등등 여러개를 동시에 사용하고싶다면
df = df.groupby([pd.Grouper(key='Time',freq='1H'),'Color']).agg({'Value':['sum','mean','min','max']})
위와같이 사전형태로 주면 여러 조건을 동시에 확인할 수 있다.
위의 예시에선 1시간단위로 그룹화했다. 다른 시간간격은
초 : S
분 :T
시간 : H
일 : D
이렇게 freq에 다르게 정할 수 있다.
반응형
'python > 기초' 카테고리의 다른 글
[파이썬 기초] Class를 알아보자.[2] (0) | 2022.05.30 |
---|---|
[파이썬 기초] Class를 알아보자. [1] (0) | 2022.05.27 |
[파이썬 기초] 반복문을 뜯어보자. ( feat.왜 i? ) (0) | 2022.01.05 |
[파이썬 기초] 로또 숫자를 만들어보자. (0) | 2021.11.25 |
[파이썬 기초] if ~ else (0) | 2021.11.23 |