假設我已經(jīng)對樣本數(shù)據(jù)框進行了排序,如下所示CustomerID CallID Date123 1 01/30/2017123 2 01/31/2017123 3 02/03/2017123 4 02/07/2017123 5 02/08/2017我想計算截至每個日期的過去 7 天內(nèi),我接到了多少個來自同一客戶的電話。所需的輸出數(shù)據(jù)幀將是CustomerID CallID Date NumOfCallsOneWeek123 1 01/30/2017 1123 2 01/31/2017 2123 3 02/03/2017 3123 4 02/07/2017 2123 5 02/08/2017 3請注意,截至 02/07/2017,2017 年 1 月 30 日的 2 個電話是在一周前收到的,因此不計算在內(nèi)。我如何在熊貓中做到這一點?感謝您的幫助。
1 回答

茅侃侃
TA貢獻1842條經(jīng)驗 獲得超21個贊
使用rolling與groupby
df['NumOfCallsOneWeek']=df.groupby('CustomerID').apply(lambda x : x.set_index('Date').rolling('7D').count())['CallID'].values
df
Out[951]:
CustomerID CallID Date NumOfCallsOneWeek
0 123 1 2017-01-30 1.0
1 123 2 2017-01-31 2.0
2 123 3 2017-02-03 3.0
3 123 4 2017-02-07 2.0
4 123 5 2017-02-08 3.0
添加回答
舉報
0/150
提交
取消