2016-07-20 110 views
4

如何在不安裝graphlab的情況下在SFrame中使用groupby操作。在沒有安裝graphlab的情況下在SFrame中分組

我很想做一些聚合,但在互聯網的所有例子中,我看到聚合函數來自Graphlab。

像:

import graphlab.aggregate as agg 

user_rating_stats = sf.groupby(key_columns='user_id', 
          operations={ 
           'mean_rating': agg.MEAN('rating'), 
           'std_rating': agg.STD('rating') 
          }) 

如何使用,也就是說,numpy.mean而不是agg.MEAN在上面的例子?

回答

3

sframe包中包含與graphlab包相同的聚合模塊,因此您不需要訴諸numpy。

import sframe 
import sframe.aggregate as agg 

sf = sframe.SFrame({'user_id': [1, 1, 2], 
        'rating': [3.3, 3.6, 4.1]}) 
grp = sf.groupby('user_id', {'mean_rating': agg.MEAN('rating'), 
          'std_rating': agg.STD('rating')}) 
print(grp) 

+---------+---------------------+-------------+ 
| user_id |  std_rating  | mean_rating | 
+---------+---------------------+-------------+ 
| 2 |   0.0   |  4.1  | 
| 1 | 0.15000000000000024 |  3.45 | 
+---------+---------------------+-------------+ 
[2 rows x 3 columns] 
相關問題