在GraphLab Sframe中过滤和显示值?

时间:2016-06-23 22:14:40

标签: machine-learning graphlab sframe

因此,一周前我开始使用Graphlab进行机器学习课程。我仍然是Graphlab的新手,我通过API阅读但无法获得我想要的解决方案。所以,这是问题所在。我有这些数据有多个列,例如卧室,浴室,平方英尺,邮政编码等。这些基本上是功能,我的目标是使用各种ML算法来预测房子的价格。现在,我应该找到带有邮政编码的房子的平均价格 - 93038.所以,我把问题分解成更小的位,因为我很天真并且决定用我的直觉。这是我到目前为止所尝试的。首先,我试图找到一种方法来创建一个过滤器,这样我只能用邮政编码提取房子的价格 - 93038。

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

这些显示了所有带有邮政编码93038的栏目,但后来我只想显示价值93038的价格和邮政编码栏。我尝试了很多不同的方法,但却无法解决问题。

另外,假设我想找到价格平均值,邮政编码为93038.我该怎么做?

提前致谢。

4 个答案:

答案 0 :(得分:2)

你可以尝试:

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()

答案 1 :(得分:0)

I and  team discussed and decide for JobNo ACK33938Y9   . Need to validate it . Next no : JIK24928Z9.

答案 2 :(得分:0)

这是我做的:

- 第一个选项

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

- 第二个选项

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*

答案 3 :(得分:0)

使用GroupBy操作和topk()函数

import graphlab.aggregate as agg
sf_ = sf.groupby(key_columns = 'zipcode', operations={'Mean by ZipCode' : agg.MEAN('price')})
sf_.topk('Mean by ZipCode', k=1)