Дано:
cat_cols = ['Pclass', 'Sex', 'Embarked']
df_train = pd.read_csv('train.csv')
df_pred = pd.read_csv('test.csv')
df_join = pd.concat([df_train[cat_cols], df_pred[cat_cols]])
NaN
значения встречаются только в столбце Embarked
, что можно проверить из кода ниже:
df_join.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1309 entries, 0 to 417
Data columns (total 3 columns):
Pclass 1309 non-null int64
Sex 1309 non-null object
Embarked 1307 non-null object
dtypes: int64(1), object(2)
memory usage: 80.9+ KB
Итак, заменив NaN
нарежим значений столбцов Embarked
:
df_join.Embarked = df_join.Embarked.fillna(df_join.Embarked.mode()[0])
df_join.Embarked.value_counts().sum()
# 1309
и поиск уникальных значений:
df_join.Embarked.unique()
# array(['S', 'C', 'Q'], dtype=object)
Совет: Это не mode
, а mode()[0]
Надеюсь, я ответил на ваш запрос, если не прокомментировал ваш запрос.