2016-07-15 16 views
1

Ich studiere graphlab erstellen mitgraphlab zu schaffen sframe wie SFeld Median bekommen

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

im Versuch Median von einer der Säulen

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

zu bekommen, aber ich habe Fehler

--------------------------------------------------------------------------- 
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() zeigt Median dieser Spalte obwohl jemand kno Wie kann man das beheben?

+0

Was ist das 'data_train' Objekt? Ist es auch ein 'Sframe'? Soll es "Daten" sein? –

Antwort

4

Ich glaube, ich verstehe, was Ihr zu tun versuchen. Sframe verfügt nicht über eine Standardmedianfunktion. Ich würde so improvisieren:

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

SArray hat keine Median-Methode. Der beste Weg, um den Median zu erhalten, ist durch die sketch_summary Methode, dann quantile. Mehr Infos auf der Skizze Zusammenfassung am

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

danke das funktioniert auch, ich frage mich, warum Graphlab Mean() -Methode hat, aber kein Median() – ikel