Вопрос / проблема: Я хотел бы создать еще один столбец, который содержит первый столбец (из многих) / или значение в списке, который соответствует критериям (который должен отличаться от «nan»).
Я работаю над фреймом данных, который содержит несколько столбцов, которые служат в качестве флагов, каждый столбец представляет собой отдельный тип флага. Вот как это выглядит:
id_number createdat ... flag_3.3.3.2.1 flag_3.3.3.2.2 flag_3.3.3.3.1
1 718v 2019-08-14 ... nan 3.3.3.2.2 3.3.3.3.1
2 566m 2019-07-10 ... nan nan nan
3 636p 2019-06-12 ... 3.3.3.2.1 nan 3.3.3.3.1
4 630r 2019-06-30 ... nan nan nan
26815 066p 2019-08-24 ... 3.3.3.2.1 3.3.3.2.2 3.3.3.3.1
26816 769b 2019-08-10 ... nan nan nan
Мне удалось создать столбец, который генерирует список всех значений столбцов, содержащих «флаг _»:
payday_cols = [col for col in df if col.startswith('flag_')]
df['flagging'] = df[payday_cols].values.tolist()
print(df)
id_number ... flag_3.3.3.3.1 flagging
1 718v ... nan [nan, nan, nan, nan, nan, nan, nan, nan, nan, ...
2 566m ... nan [nan, nan, nan, nan, nan, nan, nan, nan, nan, ...
3 636p ... nan [nan, nan, 2.2, nan, nan, nan, nan, nan, nan, ...
4 630r ... nan [nan, nan, nan, 3.1, nan, nan, nan, nan, 3.3.2... ...
26815 066p ... 3.3.3.3.1 [nan, nan, nan, nan, 3.2, nan, nan, nan, nan, ...
26816 769b ... nan [1, nan, nan, nan, nan, nan, nan, nan, 3.3.2.1...
ЧтоМне не хватает способа создать последний столбец, который содержит первое значение списка, отличающееся от nan
, или nan, если нет значения, отличного от nan
. Вывод будет таким:
id_number ... flag_3.3.3.3.1 flagging flag
1 718v ... nan [nan, nan, nan, nan, nan, nan, nan, nan, nan, ... nan
2 566m ... nan [nan, nan, nan, nan, nan, nan, nan, nan, nan, ... nan
3 636p ... nan [nan, nan, 2.2, nan, nan, nan, nan, nan, nan, ... 2.2
4 630r ... nan [nan, nan, nan, 3.1, nan, nan, nan, nan, 3.3.2... 3.1
26815 066p ... 3.3.3.3.1 [nan, nan, nan, nan, 3.2, nan, nan, nan, nan, ... 3.2
26816 769b ... nan [1, nan, nan, nan, nan, nan, nan, nan, 3.3.2.1... 3.3.2.1
Большое спасибо, и если вам понадобится, чтобы я сгенерировал значения, подобные этим, чтобы вы могли воссоздать этот случай, я отредактирую этот пост вместе с ним.