【问题标题】:Fill missing values using ffill and bfill for each groups使用 ffill 和 bfill 为每个组填充缺失值
【发布时间】: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 填充值。

  1. 如何迭代数据框?
  2. 如何遍历每个组并填充值?

我尝试使用但没有得到任何运气

我需要填写的周数据从 2018 年 6 月 3 日开始,到 2019 年 6 月 3 日结束

Pandas: filling missing values by mean in each group

【问题讨论】:

  • 我不清楚您的预期输出,您能否详细说明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


【解决方案1】:

pandas 中前向填充和后向填充非常简单,我之前也有同样的需求,我按照这里提到的这种方法进行

https://johnpaton.net/posts/forward-fill-spark/#:~:text=The%20strategy%20to%20forward%20fill,as%20being%20the%20rowsBetween%20-sys.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2023-03-30
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多