猿问

熊猫:添加缺少月份的数据

我有一个按月划分的按客户划分的销售信息数据框,看起来像这样,有多个客户,不同的按月划分的周期和花费:


      customer_id month_year      sales

   0        12    2012-05          2.58   

   1        12    2011-07         33.14  

   2        12    2011-11        182.06   

   3        12    2012-03        155.32   

   4        12    2012-01         71.24 

如您所见,对于每个客户来说,很多个月都没有了。我想为month_year范围内的所有月份的每位客户添加额外的行,其中sales = 0.0。


谁能建议最好的方法来做到这一点?


紫衣仙女
浏览 121回答 1
1回答

千万里不及你

像这样的东西;请注意,未定义customer_id的填充(因为您可能在groupby之类的东西中有此名称)。您可能需要reset_index在末尾添加一个(如果需要)In [130]: df2 = df.set_index('month_year')In [131]: df2 = df2.sort_index()In [132]: df2Out[132]:             customer_id   salesmonth_year                     2011-07              12   33.142011-11              12  182.062012-01              12   71.242012-03              12  155.322012-05              12    2.58In [133]: df2.reindex(pd.period_range(df2.index[0],df2.index[-1],freq='M'))Out[133]:          customer_id   sales2011-07           12   33.142011-08          NaN     NaN2011-09          NaN     NaN2011-10          NaN     NaN2011-11           12  182.062011-12          NaN     NaN2012-01           12   71.242012-02          NaN     NaN2012-03           12  155.322012-04          NaN     NaN2012-05           12    2.58In [135]: df2['customer_id'] = 12In [136]: df2.fillna(0.0)Out[136]:          customer_id   sales2011-07           12   33.142011-08           12    0.002011-09           12    0.002011-10           12    0.002011-11           12  182.062011-12           12    0.002012-01           12   71.242012-02           12    0.002012-03           12  155.322012-04           12    0.002012-05           12    2.58
随时随地看视频慕课网APP

相关分类

Python
我要回答