有兩個數據幀。首先是這樣的:熊貓每天計算最近7天的值
print df1
id date month is_buy
0 17 2015-01-16 2015-01 1
1 17 2015-01-26 2015-01 1
2 17 2015-01-27 2015-01 1
3 17 2015-02-11 2015-02 1
4 17 2015-03-14 2015-03 1
5 18 2015-01-28 2015-01 1
6 18 2015-02-12 2015-02 1
7 18 2015-02-25 2015-02 1
8 18 2015-03-04 2015-03 1
第二數據幀中有按月從第一個部分彙總數據:
df2 = df1[df1['is_buy'] == 1].groupby(['id', 'month']).agg({'is_buy': np.sum})
print df2
id month buys
0 17 2015-01 3
1 17 2015-02 1
2 17 2015-03 1
3 18 2015-01 1
4 18 2015-02 2
5 18 2015-03 1
我試圖讓一個名爲「last_week_buys」與聚合新DF2列從每個df1 ['月']的第一天起最後7天購買。換句話說,我希望得到這樣的:
id month buys last_week_buys
0 17 2015-01 3 NaN
1 17 2015-02 1 2
2 17 2015-03 1 0
3 18 2015-01 1 NaN
4 18 2015-02 2 1
5 18 2015-03 1 1
是否有任何想法,讓此列?
取決於您如何定義上個月的最後一週(最後7天?,最後5個交易日等),應該很容易計算上個星期每月的購買次數,然後只需將此係列與隨後的月份對齊即可。 –
@凱文斯,是的,需要計算最後的7天購買。我試圖按df1分組數據,不僅每個月,而且每年的一週,但注意到,這個日曆周可以包括1或2天......但我絕對需要7天。 –