是否有一种简单的方法可将数据行添加到缺少月度值的数据框中?
在这种情况下,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 ...
谢谢。
答案 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')