Преобразование значений столбцов фрейма данных pandas в имена столбцов

#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. Я думаю, что я внес правку, которая делает его немного более похожим на то, что вам хотелось бы