我有收到的订单数据框,例如: 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
提交
取消