2016-07-15 42 views
1

我学习graphlab创建 与graphlab创建sframe如何让SArray平均

data=graphlab.SFrame.read_csv('test.csv') 

IM试图让列

data_train.fillna(('Credit_History',data_train['Credit_History'].median())) 

之一的中位数,但我得到了错误

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-247-50ed3eb09dcc> in <module>() 
----> 1 data_train.fillna(('Credit_History',data_train['Credit_History'].median())) 

AttributeError: 'SArray' object has no attribute 'median' 

data.show()将显示此列的中位数,尽管 任何人都知道如何解决这个问题?

+0

什么是'data_train'对象?它也是一个'Sframe'吗?它应该是'数据'吗? –

回答

4

草图总结更多的信息,我想我明白你要怎样做。 Sframe没有默认的中值函数。我会这样即兴创作:

import numpy as np 
data_train.fillna('Credit_History', np.median(data_train['Credit_History'])) 
1

SArray没有中位数的方法。获得中位数的最好方法是通过sketch_summary方法,然后是quantile。在

https://turi.com/products/create/docs/generated/graphlab.Sketch.html

import numpy as np 
import graphlab as gl 

sf = gl.SFrame(np.random.rand(100)) 

sketch = sf['X1'].sketch_summary() 
median = sketch.quantile(0.5) 
+0

感谢这个作品,我想知道为什么graphlab有mean()方法,但没有median() – ikel