#python #pandas #dataframe
Вопрос:
У меня есть фрейм данных в этом формате :
P00 P1 P10 P11 P12 P13 P14 P15 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0
Для каждой строки моего фрейма данных я хочу получить имя столбца, в котором строка = 1 в списке .
выход:
['P10'] ['P1','P10'] ['P10','P11','P12','P13','P14','P15'] ['P10','P12']
Комментарии:
1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
Вам нужно просто добавить astype(str) в решение, данное StupidWolf, как это :
import pandas as pd df = pd.DataFrame({'P00':[0,0,0,0],'P1':[0,1,0,0], 'P10':[1,1,1,1],'P11':[0,0,1,0]}) dt=df.apply(lambda x:df.columns[x==1].tolist(),axis=1) dt.astype(str)
Выход :
0 ['P10'] 1 ['P1', 'P10'] 2 ['P10', 'P11'] 3 ['P10'] dtype: object