熊猫根据月度值添加缺失行

时间:2020-06-19 04:35:06

标签: pandas

是否有一种简单的方法可将数据行添加到缺少月度值的数据框中?

在这种情况下,2016-05和2016-06没有行。

                 a      b       c          d  ...     
month                                                                           

2015-12-31       0   6615        0      2730  ...       
2016-01-31       0 -13508        0      7120  ...        
2016-02-29       0   2394        0      1660  ...    
2016-03-31       0      7        0       694  ...        
2016-04-30       0      7        0      6445  ... 

// missing months

2016-07-30       0      0        0         0  ...      

谢谢。

3 个答案:

答案 0 :(得分:0)

如果索引“ months”已经是日期时间对象,则可以将数据框重新索引到开始日期和结束日期之间的所有月末。

dates = pd.date_range('20151231','20160730',freq='M') 
out = df.reindex(dates)

# you'll now have NaNs for the new months that were missing
# you can fill them in with 0s if you'd like that better
out.fillna(0.,inplace=True)

答案 1 :(得分:0)

使用no-floating-promises然后使用pd.date_range生成日期范围

reindex

答案 2 :(得分:0)

如果日期不是您的索引,则可以使用date_range个月末创建和合并一个新的数据框。

completedates = pd.DataFrame(pd.date_range(start='12/1/2015', end='7/31/2016', freq='M'), columns=['month'])
completedates.merge(df, how='left', on='month')

或一行

pd.DataFrame(pd.date_range(start='12/1/2015', end='7/31/2016', freq='M'), columns=['month']).merge(df, how='left', on='month')