簡體   English   中英

Pandas 5 天滾動計數唯一天數

[英]Pandas 5 Day Rolling Count Unique Days

我有一張銷售表,其中我需要滾動計算買家在過去 5 天內購買商品的天數。

銷售數據如下所示:

日期 買方 購買金額
2022 年 1 月 1 日 一種 2個
2022 年 1 月 3 日 一種 4個
2022 年 1 月 20 日 一種 3個
2022 年 1 月 4 日 b 6個
2022 年 1 月 21 日 b 10

該表應根據日期列回顧 5 天,並計算給定買家進行購買的所有天數。 5 天 window 內的行數未定義,因此我無法計算其間的行數。

該表應如下所示:

日期 買方 購買金額 5 天連續購買
2022 年 1 月 1 日 一種 2個 1個
2022 年 1 月 3 日 一種 4個 2個
2022 年 1 月 20 日 一種 3個 1個
2022 年 1 月 4 日 b 6個 1個
2022 年 1 月 21 日 b 10 1個

我一直在嘗試在 DATE 列上使用 nunique,但沒有成功:

我試過的:

df_five_days['5-DAY ROLLING DAYS WITH PURCHASES'] = df.groupby(['BUYER']).rolling('5D', min_periods=1, on='DATE').DATE.nunique()

目標是在任何一天吸引在過去 5 天(超過 3 天)內購買過商品的買家。

看看這是否適合你。 我是這樣做的:

df['DATE'] = pd.to_datetime(df['DATE'])
df['5-DAY ROLLING DAYS WITH PURCHASES'] = (df.groupby(['BUYER']).rolling('5D', min_periods=1, on='DATE').count()).reset_index().iloc[:, 3]

Output

        DATE BUYER  AMOUNT BOUGHT  5-DAY ROLLING DAYS WITH PURCHASES
0 2022-01-01     a              2                                1.0
1 2022-01-03     a              4                                2.0
2 2022-01-20     a              3                                1.0
3 2022-01-04     b              6                                1.0
4 2022-01-21     b             10                                1.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM