我有一个由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天计算一次交易总额。我该怎么做?
为此有一个方法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
您可以使用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
您也可以每七天分组一次:
(df.groupby(np.repeat(np.arange(df.shape[1]), 7)[:df.shape[1]],
axis=1)
.sum()
)