使用熊猫中的类别重新采样,保留非数字列

Mar*_*tan 5 python pandas

我有每小时数据,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(),它只会删除“类别”列。

jez*_*ael 7

如果需要resampleCategory列每周添加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)


ait*_*rhh 6

为了完成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)