#pandas
#pandas
Вопрос:
У меня есть фрейм данных pandas в приведенном ниже формате:
no point1 point2 point3
1 101 roof garage basement
2 102 basement garage painting
Я пытаюсь просмотреть приведенный выше фрейм данных pandas и получить приведенный ниже фрейм данных. Например, при отсутствии «101», если присутствует «roof», мне нужно будет заполнить его «1» в df_final, если нет, он должен быть заполнен «0».
df_final = [‘нет’,’крыша’,’гараж’,’подвал’]
df_final:
no roof garage basement painting
1 101 1 1 1 0
2 102 0 1 1 1
Не уверен, есть ли функция для преобразования его в указанный выше формат. Любые предложения будут оценены.
Комментарии:
1. Откуда
painting
берется ожидаемый результат?2. @Michaelsczesny: Спасибо, я внес правку
Ответ №1:
Использование get_dummies()
(Документы):
pd.get_dummies(df)
В качестве альтернативы, если вы хотите, чтобы все это «красиво сочеталось»:
pd.get_dummies(df,prefix='', prefix_sep='').groupby(level=0, axis=1).max().set_index("no")
Комментарии:
1. Я пробовал, это не работает, поскольку у меня есть фиксированный набор столбцов в df_final, который должен быть заполнен на основе исходного фрейма данных.
2. @user3447653 —
pd.get_dummies(df, prefix='', prefix_sep='')
удалит префикс. Этот ответ должен решить ваш вопрос, иначе в вашем вопросе отсутствуют требования.3. Я думаю, что я внес правку, которая делает его немного более похожим на то, что вам хотелось бы