我有收到的訂單數據框,例如: Date Units01-01-2020 202-01-2020 1203-01-2020 NaN04-01-2020 NaN05-01-2020 506-01-2020 907-01-2020 NaN08-01-2020 1有時,客戶會訂購更多數量,這樣他們就不必在接下來的 1 或 2 天內重新訂購。我試圖找出客戶在任何一天使用的平均數量。例如,如果客戶訂購了 12 個,然后 2 天沒有訂購,則所有三天的單位都應更改為 4。輸出將為: Date Units01-01-2020 202-01-2020 403-01-2020 404-01-2020 405-01-2020 506-01-2020 4.507-01-2020 4.508-01-2020 1我可以結合使用填充和添加輔助列來計算連續的 NaN 值,但我覺得必須有一種更優雅的方法。
1 回答

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
我們可以嘗試使用isnullcreate cumsumkeygroupby然后執行transform
df['Units'] = df['Units'].fillna(0).groupby(df['Units'].notnull().cumsum()).transform('mean')
0 2.0
1 4.0
2 4.0
3 4.0
4 5.0
5 4.5
6 4.5
7 1.0
添加回答
舉報
0/150
提交
取消