在pandas中分组到2d数组

时间:2017-04-24 16:46:20

标签: python pandas

我有简单的视频观看数据集:

df.head()
Out[10]: 
               video_id   views
datetime                       
2017-04-07  ---9wpGBsr4  1479.0
2017-04-08  ---9wpGBsr4  1883.0
2017-04-09  ---9wpGBsr4  2021.0
2017-04-10  ---9wpGBsr4  2083.0
2017-04-11  ---9wpGBsr4  2127.0

我正在计算每个视频的每周观看次数:

resDf = df.groupby(['video_id', pd.TimeGrouper('W')]).sum()

所以我有多索引video_id,日期。现在我想得到一个numpy数组列表,它有效地为每个视频或2D numpy数组提供视图(数据集很大)。

现在我在做:

resDf2 = resDf.reset_index().set_index('datetime')
resultList = list(resDf2.groupby('video_id')['views'].apply(pd.DataFrame.as_matrix))

我认为有更好,更快的方式。你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

您的示例中您想要的输出是什么?这就是你要追求的吗?

df.groupby(['video_id', pd.TimeGrouper('W')]).sum().values
Out[414]: 
array([[ 5383.],
       [ 4210.]])