【发布时间】:2020-11-18 01:46:10
【问题描述】:
我正在尝试填充组的缺失值(区号、商店名称、商品名称、日期、销售额)。对于每个组,我需要用 52 周的数据填充 sales_amount。我需要用 ffill(df.ffill()) 和 bfill (df.bfill()) 创建两个不同的列,然后我需要求和(用 ffill 和 bfill/2 新创建的列来获得我的结果。
area_code shop_name item_name week_date sales_amount
101 Global Market Mango Fruits 6/3/2018 5.13
101 Global Market Mango Fruits 6/10/2018 nan
101 Global Market Mango Fruits 6/17/2018 7.13
101 Global Market Chips 6/3/2018 5
101 Global Market Chips 6/10/2018 nan
102 Global Market Mango Fruits 6/3/2018 10.34
102 Global Market Mango Fruits 6/10/2018 nan
102 Global Market Chips 6/10/2018 nan
102 Global Market Chips 6/17/2018 nan
102 Global Market Chips 6/24/2018 nan
102 Global Market Potato 6/24/2018 nan
After
area_code shop_name item_name week_date sales_amount
101 Global Market Mango Fruits 6/3/2018 5.13
101 Global Market Mango Fruits 6/10/2018 6.13
101 Global Market Mango Fruits 6/17/2018 7.13
101 Global Market Chips 6/3/2018 5
101 Global Market Chips 6/10/2018 5
102 Global Market Mango Fruits 6/3/2018 10.34
102 Global Market Mango Fruits 6/10/2018 10.34
102 Global Market Chips 6/10/2018 Value available before this week for this group
102 Global Market Chips 6/17/2018 Value available before this week for this group
102 Global Market Chips 6/24/2018 Value available before this week for this group
102 Global Market Potato 6/24/2018 Value available before this week for this group
For example -
Week 1 10
Week 2 nan
week 3 nan
“该组在本周之前可用的值”表示第 3 周、第 2 周的值与第 1 周相同。否则,如果第 1 周和第 3 周有数据,则根据 ffill 或 bfill 填充第 2 周。如果它不喜欢这样,那么只需为每个组通过 ffill 或 bfill 填充值。
- 如何迭代数据框?
- 如何遍历每个组并填充值?
我尝试使用但没有得到任何运气
我需要填写的周数据从 2018 年 6 月 3 日开始,到 2019 年 6 月 3 日结束
【问题讨论】:
-
我不清楚您的预期输出,您能否详细说明
102 Global Market Chips 6/10/2018 Value available before this week for this group行和以下行?我根本看不到该组的任何数据.. 所以应该是null? -
我已经更新了问题,请查看@anky
-
是的,如果数据不可用则为空
-
您是否在 Spark/PySpark 中寻找答案?或者你想要这是熊猫?那么在这种情况下,谷歌搜索会帮助你吗????
-
两种方式都会回答这个问题。我只是在寻找好的链接并增加我对此的理解
标签: python sql apache-spark pyspark pandas-groupby