2016-03-26 9 views
-1

Kaggle titanik afet sorununu çözmeye çalışıyorum, özellikle eksik değerleri girmek için mod/ortalama/medyan kullanarak. İşte benim verilere bir zirve Ben girişti 'Sütun ve tip 'Nesne' modunu almaya çalışıyorumPython 3. +, Scipy Stats Mode işlevi, Type Error değerini vermez: 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 

kümesidir. Python3 kullanıyorum. İşte kod parçacığı şudur: df.Embarked yılında türlerini karışık olmasıdır

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

cevap

2
modeEmbarked = mode(df.Embarked.dropna()) 

sorunu çözer.

1

:

İşte
modeEmbarked = mode(df.Embarked) 

hata pasajıdır. Tüm öğelerin aynı türde (veya karşılaştırılabilecek tipte) olduğundan emin olun. Veya karışık tiplerle başa çıkabilecek Series.mode() veya Series.mode()'u kullanın.

modeEmbarked = mode(df.Embarked) 

bu insetead kullanılarak

+0

evet! NAN değerleri var, ancak çalıştığım eğitici ekstra bir şey yapmıyor ve aynı sonucu veriyor! Bununla birlikte, dropna() ile çalıştırırsam aynı şeyi yapabilirim() – aks

+1

@AnkitSinghaniya Öğreticiniz ne derse desin, "scipy.stats.mode()", karışık türde dizilerin modlarını, en azından scipy'nin yüklü sürümünü hesaplayamıyor bilgisayarımda. Mod() 'nın pandalar sürümü bunu yapabilir, benim düzenlememi görebilir. – Goyo

+0

karışık değerler hakkında işaret etmekte haklısınız. Sanırım NAN değerleri problemdi. – aks