考虑具有两列的过度简化的数据框:日期和值。
dates = pd.DatetimeIndex(['2017-01-01 00:00:00', '2017-01-05 02:00:00','2017-03-01 02:00:00', '2018-01-01 03:00:00', '2018-01-21 04:00:00','2018-03-01 03:00:00', '2018-03-22 04:00:00'], dtype='datetime64[ns]')
my_df = pd.DataFrame({"Date":dates,"Values":[5,1,2,4,6,3,5]})
my_df
我的目标是绘制堆栈条,使x_axis具有month_year,并且该条会显示一堆值。例如,对于2017年1月,我希望看到2种颜色,其中5和1总计为6,依此类推。
由于这是一个与group-by_date有关的问题,我想知道如何获取基于月-年的值列表,以便可以将它们正确地堆叠在一起,然后再进行如下for循环:
for each month_year:
plt.bar(month_year, list_of_values_per_month_year, color='#whatever',)
请注意,并非每个月都有一个值,有些月份有n个值。
当然,除非我的方法从根本上讲是复杂的,而且有一种更平滑的方法可以做到。