【问题标题】:graphlab create sframe how to get SArray mediangraphlab 创建 sframe 如何获取 SArray 中位数
【发布时间】:2016-11-18 14:52:19
【问题描述】:

我正在学习 graphlab 创建 与

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

我正在尝试获取其中一列的中位数

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() 将显示该列的中位数 有谁知道如何解决这个问题?

【问题讨论】:

  • data_train 对象是什么?也是Sframe吗?应该是data

标签: python pandas machine-learning data-analysis graphlab


【解决方案1】:

我想我明白你想做什么。 Sframe 没有默认的中值函数。我会像这样即兴发挥:

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

【讨论】:

    【解决方案2】:

    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)
    

    【讨论】:

    • 谢谢这个也有效,我想知道为什么graphlab有mean()方法但没有median()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    相关资源
    最近更新 更多