在条形图上包含0个有价值的日子

时间:2019-11-12 20:14:45

标签: python python-3.x pandas dataframe matplotlib

我目前有一个日期和值的分组数据框,正在创建以下条形图:

 date   |  value
--------|--------
7-9-19  |   250
7-14-19 |   400
7-20-19 |   500
7-20-19 |   300
7-21-19 |   200
7-30-19 |   142

当我绘制df时,我会返回一个条形图,该条形图仅显示具有值的日期。有没有办法让我轻松地绘制一个月的所有天的条形图,而无需在数据框中插入日期和所有缺少的天的0值?

**编辑:我遗漏了某些日期可能有多个条目,因此通过重新索引添加缺失的日期会引发重复的轴错误。

***解决方案-我最终只使用一个月中的某天来简化必须处理datetime objs的工作。即7-9-19 => 9。经过以下Quang Hoang的有益建议后,我意识到仅使用一天#:

ind = range(1,32)
df = df.reindex(ind, fill_value=0)

1 个答案:

答案 0 :(得分:2)

您可以使用reindex,记得将date设置为索引:

# convert to datetime
# skip if already is
df['date'] = pd.to_datetime(df['date'], format='%m-%d-%y')

(df.set_index('date')
   .reindex(pd.date_range('2019-07-01','2019-07-31', freq='D'))
   .plot.bar()
)

输出:

enter image description here