У меня есть DataFrame, который определяется как:
import pandas as pd
df = pd.DataFrame({'product': ['A', 'B', 'C'], 'feature_1': [1,0,0], 'feature_2': [1,1,1], 'feature_3': [0,0,1] })
display(df)">
Моя цель:
- добавить столбец с именем
features
- , заполните этот столбец именем всех столбцов, где значение ячейка равно единице
Обычноконечный результат будет выглядеть как DataFrame:
df_result = pd.DataFrame({'product': ['A', 'B', 'C'], 'feature_1': [1,0,0], 'feature_2': [1,1,1], 'feature_3': [0,0,1], 'features': ['feature_1, feature_2', 'feature_2', 'feature_2, feature_3'] })
display(df_result)">
Я пытался использовать apply
, но я не думаю, что этоправильный способ делать вещи (поверх не работает ...):
def get_features(row):
for column in row.colums:
print(column.name)
df.apply(lambda row: get_features(row))
Каков будет правильный подход к этому?