2016-06-23 2 views
3

J'ai donc commencé à travailler avec Graphlab pour mon cours d'apprentissage machine il y a une semaine. Je suis encore très jeune à Graphlab et j'ai lu l'API mais je n'ai pas pu trouver la solution que je recherchais. Donc, voici la question. J'ai ces données avec plusieurs colonnes, par exemple: chambres à coucher, salles de bains, pieds carrés, codes postaux, etc. Ce sont essentiellement les caractéristiques et mon objectif est de travailler avec différents algorithmes ML pour prédire le prix d'une maison. Maintenant, je suis censé trouver le prix moyen des maisons avec le code postal - 93038. Donc, j'ai cassé le problème en plus petits morceaux comme je suis assez naïf et a décidé d'utiliser mon instinct. C'est ce que je l'ai essayé si far.Firstly, j'ai essayé de trouver un moyen de créer un filtre de telle sorte que je peux extraire uniquement les prix de la maison avec code postal - 93038.Filtrage et affichage des valeurs dans Sframe GraphLab?

import graphlab 
sf = graphlab.SFrame('home_data.gl') 
sf[(sf['zipcode']=='93038')] 

Ces m'a montré toutes les colonnes avec code postal 93038 mais alors je veux seulement afficher le prix et la colonne de code postal avec la valeur 93038. J'ai essayé tant de manières différentes mais juste n'ai pas pu comprendre des choses.

Aussi, disons que je veux trouver la moyenne des prix avec la valeur de code postal 93038.Comment puis-je faire cela?

Merci d'avance.

Répondre

2

Vous pouvez essayer:

import graphlab as gl 
sf = gl.SFrame({'price':[1,4,2],'zipcode':['93038','93038','93037']}) 

# Filtering 
filter_sf = sf[(sf['zipcode']=='93038')] 

# Displaying 
print filter_sf[['price', 'zipcode']] 

# Averaging a column 
print filter_sf['price'].mean() 
+0

: - Merci. J'ai essayé la solution ci-dessus mais elle donne la sortie comme aucune. Quel pourrait être le problème? – Lesley

+0

Cela devrait fonctionner mais "prix" doit être une caractéristique numérique pour appliquer mean(). Quelle sortie est None? –

+0

: - print filter_sf ['price']. Mean() sorties aucune. – Lesley

0
mean_by_zip = sales.groupby(key_columns=['zipcode'], 
     operations={'avg': graphlab.aggregate.MEAN('price')}) 

mean_by_zip.sort('avg', ascending=False)[0:3] # will give top 3 
0

Voici ce que je faisais:

- 1ère option

sf[sf['zipcode']=='98039']['price'].mean() 

- 2ème option

zip = ['98039'] *#create your variable with the zipcode you want* 

m_price = sf.filter_by(zip, 'zipcode') *#you filter the column 'zipcode' by your zipcode* 

print m_price['price'].mean() *#print the mean of the zipcode*