У меня есть набор данных, в котором столбец «Страна» содержит 28 разных стран. Мне нужно сначала «закодировать метку» столбца, а затем «горячо закодировать» его только с 6 метками: 5 самых популярных стран: США, КИТАЙ, ЯПОНИЯ, ФРАНЦИЯ, КАНАДА и 6-я метка - «ДРУГОЕ» для любых других стран в столбец
Вы можете попробовать это простое решение, используя lambda. Условия if elif else в lambda могут даже помочь вам классифицировать его дальше!
lambda
if elif else
top = ['USA', 'CHINA', 'JAPAN', 'FRANCE', 'CANADA'] df['country'] = df['country'].apply(lambda x : 'OTHERS' if x not in top else x) pd.get_dummies(df['country'])
Вы можете использовать np.where:
np.where
countries = ['USA', 'CHINA', 'JAPAN', 'FRANCE', 'CANADA'] df['country_cat'] = np.where(df['country'].isin(countries), df['country'], 'OTHER') # and then you can use `pd.get_dummies` pd.get_dummies(df['country_cat'])