大熊猫梳理数据帧优化

时间:2018-09-14 15:54:53

标签: python pandas dataframe optimization

嘿,我在熊猫中有一个时间序列订单数据集,其中某些日期的值缺少该值以进行更正,我正尝试从以前的可用日期中获取该值。

for date in dates_missing:
    df_temp = df[df.order_date<date].sort_values(['order_date'],ascending=False)
    supplier_map = df_temp.groupby('supplier_id')['value'].first()

    for supplier_id in supplier_map.index.values:
        df[(df.order_datetime==date)&(df.su_id == supp)]['value'] = supplier_map.get(supplier_id)

为了解释代码,我在缺少的日期上循环,然后获取缺少的日期之前的值列表。 然后使用熊猫first()获取供应商ID到价值地图

  

现在最慢的部分是更新回原始数据帧

我正在遍历每个供应商并更新原始数据框中的值。

需要建议以加快内部for循环

示例:

|order_date|supplier_id |value |sku_id| |2017-12-01| 10 | 1.0 | 1 | |2017-12-01| 9 | 1.3 | 7 | |2017-12-01| 3 | 1.4 | 2 | |2017-12-02| 3 | 0 | 2 | |2017-12-02| 9 | 0 | 7 | |2017-12-03| 3 | 1.0 | 2 | |2017-12-03| 10 | 1.0 | 1 | |2017-12-03| 9 | 1.3 | 7 |

修复日期2017-12-02

|2017-12-02| 3 | 0 | 2 | |2017-12-02| 9 | 0 | 7 |

校正后的数据帧

|order_date|supplier_id |value |sku_id| |2017-12-01| 10 | 1.0 | 1 | |2017-12-01| 9 | 1.3 | 7 | |2017-12-01| 3 | 1.4 | 2 | |2017-12-02| 3 | 1.4 | 2 | |2017-12-02| 9 | 1.3 | 7 | |2017-12-03| 3 | 1.0 | 2 | |2017-12-03| 10 | 1.0 | 1 | |2017-12-03| 9 | 1.3 | 7 | PS: 我可能对这个问题不太清楚,因此很乐意回答疑问并重新编辑正在进行的帖子。

0 个答案:

没有答案