为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

紫衣仙女 2021-03-29 15:51:44
我有一个按月划分的按客户划分的销售信息数据框,看起来像这样,有多个客户,不同的按月划分的周期和花费:      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。谁能建议最好的方法来做到这一点?
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

像这样的东西;请注意,未定义customer_id的填充(因为您可能在groupby之类的东西中有此名称)。


您可能需要reset_index在末尾添加一个(如果需要)


In [130]: df2 = df.set_index('month_year')


In [131]: df2 = df2.sort_index()


In [132]: df2

Out[132]: 

            customer_id   sales

month_year                     

2011-07              12   33.14

2011-11              12  182.06

2012-01              12   71.24

2012-03              12  155.32

2012-05              12    2.58


In [133]: df2.reindex(pd.period_range(df2.index[0],df2.index[-1],freq='M'))

Out[133]: 

         customer_id   sales

2011-07           12   33.14

2011-08          NaN     NaN

2011-09          NaN     NaN

2011-10          NaN     NaN

2011-11           12  182.06

2011-12          NaN     NaN

2012-01           12   71.24

2012-02          NaN     NaN

2012-03           12  155.32

2012-04          NaN     NaN

2012-05           12    2.58


In [135]: df2['customer_id'] = 12


In [136]: df2.fillna(0.0)

Out[136]: 

         customer_id   sales

2011-07           12   33.14

2011-08           12    0.00

2011-09           12    0.00

2011-10           12    0.00

2011-11           12  182.06

2011-12           12    0.00

2012-01           12   71.24

2012-02           12    0.00

2012-03           12  155.32

2012-04           12    0.00

2012-05           12    2.58


查看完整回答
反对 回复 2021-04-06
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信