我有一个事件列表,我想在图表上显示每周每小时发生的事件数量,如下所示: Example of the graph i want (每一行是一天,x轴是一天的时间,y轴是事件的数量)
由于我是Panda的新手,我不确定最好的方法是什么,但这是我的方式:
x = [(rts[k].getDay(), rts[k].getHour(), 1) for k in rts]
df = pd.DataFrame(x[:30]) # Subset of 30 events
dfGrouped = df.groupby([0, 1]).sum() # Group them by day and hour
#Format to display
pd.DataFrame(np.random.randn(24, 7), index=range(0,24), columns=['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'])
问题是,我如何从我的数据框中将数据分组到一个24x7的矩阵,以便显示?
我试过as_matrix,但是只给我一个一维数组,而我希望我的数据帧的索引是我矩阵中的索引。
print(df)
2
0 1
0 19 1
23 1
1 10 2
18 3
22 1
2 17 1
3 8 2
9 3
11 3
13 1
19 1
4 7 1
9 1
14 1
15 1
18 1
5 1 2
7 1
13 1
19 1
6 12 1
感谢您的帮助:) 安托
答案 0 :(得分:0)
我认为您需要unstack
重塑数据,然后export default withStyles(buttonStyle)(({ classes, ...restProps}) => (
<Button classes={{ root: classes.root }} {...restProps} />
));
列rename
列名称,如有必要,请按reindex_axis
添加缺失小时数:
dict
df1 = df.groupby([0, 1])[2].sum().unstack(0, fill_value=0)