Я хочу заполнить некоторые недостающие данные в наборе данных Titani c наиболее распространенным значением, а именно 'S':
# This does not work:
df.loc[df.Embarked.isnull(), 'Embarked'] = df.Embarked.mode()
# But this does work:
df.loc[df.Embarked.isnull(), 'Embarked'] = 'S'
# And this works too:
df.loc[df.Embarked.isnull(), 'Embarked'] = str(df.Embarked.mode())
Я подумал, что это может быть связано с несовпадающими типами данных, поэтому Я проверил это:
df.Embarked.mode()
>>>
0 S
dtype: object
Таким образом, режим возвращается как объект. Проверяя тип данных столбца Embarked, мы видим, что он также содержит все объекты:
df.Embarked
>>>
PassengerId
1 S
2 C
3 S
4 S
5 S
..
1305 S
1306 C
1307 S
1308 S
1309 C
Name: Embarked, Length: 1309, dtype: object
Теперь, когда я понял, что работает, и это не так сложно реализовать, я просто Любопытно, почему очевидное (для меня) решение не сработало?