Pandas의 TimeGrouper 기능에 대한 대안
데이터 그룹화는 데이터로 작업할 때 수행되는 매우 일반적인 작업입니다. 데이터를 이해하려면 데이터를 그룹화하여 관계나 특정 값을 확인해야 하는 경우가 많습니다.
Pandas 내에서 몇 가지 기능을 사용하여 특정 요구 사항에 따라 데이터 프레임을 그룹화할 수 있습니다. 이러한 기능 중 하나는 시간 개체를 기반으로 데이터를 그룹화할 수 있는 TimeGrouper
기능이었지만 이 기능은 오랫동안 사용되지 않았습니다.
이 기사에서는 Pandas의 TimeGrouper
기능에 대한 대안과 사용 방법에 대해 설명합니다.
TimeGrouper
기능이 더 이상 사용되지 않음
groupby
기능과 함께 사용된 TimeGrouper
기능은 Pandas Grouper()
함수를 선호하여 Pandas 버전 0.21.0에서 오랫동안 사용되지 않습니다. 개체에 대한 groupby
명령(time
개체 포함).
Grouper()
함수 사용
언급한 바와 같이 Grouper()
함수를 사용하면 사용자가 개체에 대한 groupby()
함수를 지정하고 그룹화가 발생하는 주요 매개 변수로 원하는 열을 선택할 수 있습니다.
예를 들어 DateTime 열 외에 DateTime이 아닌 열을 그룹화할 때 groupby()
는 pd.Grouper()
를 사용하기에 적절한 위치입니다. 빈도로만 그룹화해야 하는 경우에는 항상 resample()
을 사용할 수 있습니다.
Grouper()
가 DateTime이 아닌 열을 그룹화하고 freq
인수에 전달된 M
에 의해 정의되는 month-end frequency
를 사용하여 작동하는 방식을 설명하겠습니다.
먼저 numpy
라이브러리를 사용하여 그룹화할 데이터를 생성해 보겠습니다.
암호:
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': np.random.choice(['x', 'y'], size=50),
'b': np.random.rand(50)},
index=pd.date_range('2022', periods=50))
print(df.head())
출력:
a b
2022-01-01 x 0.365385
2022-01-02 y 0.484075
2022-01-03 y 0.863266
2022-01-04 x 0.319142
2022-01-05 x 0.386386
이제 데이터가 있으므로 계산된 그룹화의 평균
을 사용하여 월말 빈도
를 기반으로 그룹화하여 데이터에 Grouper()
함수를 사용하겠습니다.
newDf = df.groupby(pd.Grouper(freq="M")).mean()
print(newDf)
출력:
b
2022-01-31 0.582896
2022-02-28 0.451495
따라서 월말 빈도
를 기반으로 데이터를 성공적으로 그룹화했습니다. 또한 a
열과 월말 빈도
를 기준으로 계산된 그룹화의 평균을 사용하여 데이터를 그룹화할 수 있습니다.
otherDf = df.groupby([pd.Grouper(freq="M"), "a"]).mean()
print(otherDf)
출력:
b
a
2022-01-31 x 0.401720
y 0.473320
2022-02-28 x 0.760869
y 0.312064
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn