按周重新采样数据

时间:2019-11-01 19:26:44

标签: python pandas

我有一个时间序列数据集,其中有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天取一次交易总金额。我该怎么办?

2 个答案:

答案 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