Я пытаюсь решить проблему катастрофического титанического конфликта, в частности, используя режим/среднее/медианное значение для ввода отсутствующих значений. Вот пик моих наборов данныхPython 3. + Функция Scipy Stats Mode дает Type Error unorderable types: str()> float()
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
Я пытаюсь получить режим Column «вставших» и тип «Object». Я использую python3. Вот фрагмент кода:
modeEmbarked = mode(df.Embarked)
Вот фрагмент кода ошибки:
<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()
Да! есть значения NAN, но учебник, с которым я работаю, не делает ничего лишнего и дает тот же результат! Однако я могу сделать то же самое, если я запустил его с помощью dropna() – aks
@AnkitSinghaniya. Независимо от того, что говорится в вашем учебнике, 'scipy.stats.mode()' не может вычислять режимы массивов смешанных типов, по крайней мере, версия установленного scipy в моем компьютере. Версия pandas 'mode()' может сделать это, хотя, см. Мое редактирование. – Goyo
вы были правы, указывая на смешанные значения. Я думаю, что проблема NAN была проблемой. – aks