【问题标题】:Python 3.+, Scipy Stats Mode function gives Type Error unorderable types: str() > float()Python 3.+,Scipy Stats Mode 函数给出类型错误不可排序的类型:str() > float()
【发布时间】:2016-07-14 09:22:48
【问题描述】:

我正在尝试解决 kaggle 泰坦尼克号灾难问题,特别是使用众数/均值/中位数来输入缺失值。这是我的数据集的一个峰值

   Parch            Ticket     Fare Cabin Embarked  
0      0         A/5 21171   7.2500   NaN        S  
1      0          PC 17599  71.2833   C85        C  
2      0  STON/O2. 3101282   7.9250   NaN        S  
3      0            113803  53.1000  C123        S  
4      0            373450   8.0500   NaN        S  

我正在尝试获取“Embarked”列的模式并输入“Object”。我正在使用python3。这是代码sn-p:

modeEmbarked = mode(df.Embarked)

这里是错误sn-p:

<ipython-input-39-1b4237d65022> in clean(df)
     18 
     19     # Cleaning Embarked column
---> 20     modeEmbarked = mode(df.Embarked)
     21 #     print(mode(df.Embarked))
     22 #     le_embarked = preprocessing.LabelEncoder()

/home/singhaniya/anaconda3/lib/python3.5/site-packages/scipy/stats/stats.py in mode(a, axis)
    635     return np.array([]), np.array([])
    636 
--> 637     scores = np.unique(np.ravel(a))       # get ALL unique values
    638     testshape = list(a.shape)
    639     testshape[axis] = 1

/home/singhaniya/anaconda3/lib/python3.5/site-packages/numpy/lib/arraysetops.py in unique(ar, return_index, return_inverse, return_counts)
    196         aux = ar[perm]
    197     else:
--> 198         ar.sort()
    199         aux = ar
    200     flag = np.concatenate(([True], aux[1:] != aux[:-1]))

TypeError: unorderable types: str() > float()

【问题讨论】:

    标签: python-3.x numpy scipy anaconda kaggle


    【解决方案1】:
    modeEmbarked = mode(df.Embarked.dropna())
    

    使用这个代替

    modeEmbarked = mode(df.Embarked)
    

    解决问题。

    【讨论】:

      【解决方案2】:

      这是因为您在 df.Embarked 中有混合类型。确保所有项目的类型相同(或可比较的类型)。

      或者使用Series.mode(),可以处理混合类型。

      【讨论】:

      • 是的!有 NAN 值,但我正在使用的教程没有做任何额外的事情并产生相同的结果!但是,如果我使用 dropna() 运行它,我也可以这样做
      • @AnkitSinghaniya 不管你的教程说什么,scipy.stats.mode() 无法计算混合类型数组的模式,至少是我电脑中安装的 scipy 版本。 mode() 的熊猫版本可以做到这一点,请参阅我的编辑。
      • 您指出混合值是正确的。我认为 NAN 值是问题所在。
      猜你喜欢
      • 2016-05-20
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      相关资源
      最近更新 更多