我想解決kaggle泰坦尼克號災難問題,具體使用mode/mean/median來輸入缺失值。這裏是我的數據集的一個高峯Python 3. +,Scipy統計模式函數給出類型錯誤無法訂購的類型: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
我想獲得'進入'列的模式並鍵入'對象'。我正在使用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的版本在我的電腦裏。 'mode()'的熊貓版本可以做到這一點,請參閱我的編輯。 – Goyo
你是對的,指出混合價值。我認爲NAN值是問題所在。 – aks