我有每小时数据,x3 种类型的变量和Category列,并ds设置为索引。
> df
ds Category X
2010-01-01 01:00:00 A 32
2010-01-01 01:00:00 B 13
2010-01-01 01:00:00 C 09
2010-01-01 02:00:00 A 12
2010-01-01 02:00:00 B 62
2010-01-01 02:00:00 C 12
Run Code Online (Sandbox Code Playgroud)
我想将其重新采样为Week. 但是,如果我使用df2 = df.resample('W').mean(),它只会删除“类别”列。
如果需要resample每Category列每周添加groupby,则使用DataFrameGroupBy.resample:
注意:
为了正确工作是必要的DatetimeIndex。
df2 = df.groupby('Category').resample('W').mean()
print (df2)
X
Category ds
A 2010-01-03 22.0
B 2010-01-03 37.5
C 2010-01-03 10.5
Run Code Online (Sandbox Code Playgroud)
为了完成jezrael 的回答,我发现将内容作为 DataFrame 而不是 DataFrameGroup 放回很有用,如此处所述。所以,答案将是:
df2 = df.groupby('Category').resample('W').mean()
# the inverse of groupby, reset_index
df2 = df2.reset_index()
# set again the timestamp as index
df2 = df2.set_index("ds")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2391 次 |
| 最近记录: |