如果值不为空则合并两列 python

Merge two columns if value is not null python

我知道这个问题可能不是最难的,但我不知道为什么我不能解决它:

我有两列要合并

    label1  label2
5   4   NaN
13  0   NaN
18  0   NaN
32  2   3
33  5   NaN

如果 'label2' 不为空,我想合并它们并用 I 逗号分隔它们。否则新列中的新条目只包含 label1 的值。 Label1 不能为空:

    label   label2 label3
5   4      NaN       [4] 
13  0      NaN       [0]          
18  0      NaN       [0]
32  2      3        [2,3]
33  5      NaN        [5]

因为我想在下一步中使用 MultiLabelBinarizer,所以我的输出列的值周围的括号是必需的。

谢谢大家

您可以遍历数据框并为每一行赋值。

df['label3'] = [[row['label1'], row['label2']] if pd.notna(row['label2']) else [row['label1']] for idx, row in df.iterrows()]