2016-07-15 46 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