我有一个时间序列数据集,其中有100位用户查看365天的交易。该数据框目前的设置如下:
date 2018-04-01 2018-04-02 2018-04-03 2018-04-04 2018-04-05 ...
userid
1 0 0 0 0 13.40
2 12.32 0 0 0 3.60
3 11.32 0 14.22 0 0
4 0 0 0 0 9.87
5 0 0 19.52 0 0
...
我想将此采样重采样到52周,每7天取一次交易总金额。我该怎么办?
答案 0 :(得分:1)
您可以使用weekofyear
:
df.groupby(df.columns.weekofyear, axis=1).sum()
输出:
date 13 14
userid
1 0.00 13.40
2 12.32 3.60
3 11.32 14.22
4 0.00 9.87
5 0.00 19.52
您还可以每7天进行分组:
(df.groupby(np.repeat(np.arange(df.shape[1]), 7)[:df.shape[1]],
axis=1)
.sum()
)
答案 1 :(得分:1)
为此,有一种方法DataFrame.resample
:
#df.columns=pd.to_datetime(df.columns)
df_resamp=df.resample('W',axis=1).sum()
print(df_resamp)
2018-04-01 2018-04-08
userid
1 0.00 14.50
2 12.32 5.60
3 11.32 17.22
4 0.00 12.87
5 0.00 21.52