如何将事件列表转换为矩阵以在Panda中显示

时间:2017-07-25 08:54:20

标签: pandas numpy matplotlib

我有一个事件列表,我想在图表上显示每周每小时发生的事件数量,如下所示: 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

感谢您的帮助:) 安托

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)