На самом деле существует действительно простое решение - использование pd.get_dummies()
Если у вас есть фрейм данных, подобный следующему:
so_data = {
'passenger_id': [1,2,3,4,5],
'survived': [1,0,0,1,0],
'age': [24,25,68,39,5],
'sex': ['female', 'male', 'male', 'female', 'female'],
'first_name': ['Joanne', 'Mark', 'Josh', 'Petka', 'Ariel']
}
so_df = pd.DataFrame(so_data)
, который выглядит следующим образом:
passenger_id survived age sex first_name
0 1 1 24 female Joanne
1 2 0 25 male Mark
2 3 0 68 male Josh
3 4 1 39 female Petka
4 5 0 5 female Ariel
Вы можете просто сделать:
pd.get_dummies(so_df)
, что даст вам:
(извините за скриншот, но действительно трудно очистить df на SO)