【问题标题】:Fill in missing data pandas填写缺失的数据 pandas
【发布时间】:2018-05-02 06:52:21
【问题描述】:

如何在这个日期范围内填写缺失的数据。

没有销售的天数缺失值。如何填写某商品在特定商店和日期售出 0 天的缺失值?

输入

Dates            Store            Item        Sales           
2017-01-01       Chicago          Apple       10
2017-01-02       NewYork          Pear        10 
2017-01-03       Chicago          Apple       10

输出

Dates            Store            Item        Sales           
2017-01-01       Chicago          Apple       10
2017-01-01       Chicago          Pear        0
2017-01-02       Chicago          Apple       0
2017-01-02       Chicago          Pear        0
2017-01-03       Chicago          Apple       10
2017-01-03       Chicago          Pear        0    
2017-01-01       NewYork          Apple       0
2017-01-01       NewYork          Pear        0 
2017-01-02       NewYork          Apple       0 
2017-01-02       NewYork          Pear        10 
2017-01-03       NewYork          Apple       0 
2017-01-03       NewYork          Pear        0 

【问题讨论】:

    标签: python python-3.x python-2.7 pandas missing-data


    【解决方案1】:

    用途:


    df = df.set_index(['Dates','Store','Item'])
    mux = pd.MultiIndex.from_product(df.index.levels, names=df.index.names)
    df = df.reindex(mux, fill_value=0).sort_index(level='Store').reset_index()
    print (df)
            Dates    Store   Item  Sales
    0  2017-01-01  Chicago  Apple     10
    1  2017-01-01  Chicago   Pear      0
    2  2017-01-02  Chicago  Apple      0
    3  2017-01-02  Chicago   Pear      0
    4  2017-01-03  Chicago  Apple     10
    5  2017-01-03  Chicago   Pear      0
    6  2017-01-01  NewYork  Apple      0
    7  2017-01-01  NewYork   Pear      0
    8  2017-01-02  NewYork  Apple      0
    9  2017-01-02  NewYork   Pear     10
    10 2017-01-03  NewYork  Apple      0
    11 2017-01-03  NewYork   Pear      0
    

    【讨论】:

      【解决方案2】:

      使用set_index,stackunstack会有点难以理解

      df.set_index(['Dates','Store','Item']).unstack().stack(dropna=False).\
          unstack(1).stack(dropna=False).fillna(0).reset_index()
      Out[258]: 
               Dates   Item    Store  Sales
      0   2017-01-01  Apple  Chicago   10.0
      1   2017-01-01  Apple  NewYork    0.0
      2   2017-01-01   Pear  Chicago    0.0
      3   2017-01-01   Pear  NewYork    0.0
      4   2017-01-02  Apple  Chicago    0.0
      5   2017-01-02  Apple  NewYork    0.0
      6   2017-01-02   Pear  Chicago    0.0
      7   2017-01-02   Pear  NewYork   10.0
      8   2017-01-03  Apple  Chicago   10.0
      9   2017-01-03  Apple  NewYork    0.0
      10  2017-01-03   Pear  Chicago    0.0
      11  2017-01-03   Pear  NewYork    0.0
      

      【讨论】:

        猜你喜欢
        • 2021-04-27
        • 1970-01-01
        • 1970-01-01
        • 2022-11-02
        • 1970-01-01
        • 2020-02-28
        • 2018-05-02
        • 1970-01-01
        • 2021-06-17
        相关资源
        最近更新 更多