为了账号安全,请及时绑定邮箱和手机立即绑定

使用 pandas 中的 ffill 在以下 NaN 之间分配值

使用 pandas 中的 ffill 在以下 NaN 之间分配值

繁华开满天机 2023-09-26 16:28:31
我有收到的订单数据框,例如: 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


查看完整回答
反对 回复 2023-09-26
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信