【发布时间】:2021-03-17 00:07:32
【问题描述】:
我正在尝试将同一数据框中的三列合并为一列。
这是我的数据框selected_vals
label_1 label_2 label_3
0 NaN NaN NaN
1 ('__label__Religione_e_Magia',) NaN NaN
2 NaN ('__label__Storia',) NaN
3 NaN ('__label__Storia',) NaN
4 ('__label__Religione_e_Magia',) NaN NaN
数据框每行只有一个值,因此在未指定值的列中,我有NaN
按照here提出的解决方案,我使用了这段代码:
selected_vals['selected_vals'] = selected_vals.loc[:,selected_vals.columns.tolist()[1:]].apply(lambda x: x.dropna().tolist(), 1)
但是,通过这样做,只有来自 col label_2 的值在 col selected_vals 中
这里是输出
label_1 label_2 label_3 selected_vals
0 NaN NaN NaN []
1 ('__label__Religione_e_Magia',) NaN NaN []
2 NaN ('__label__Storia',) NaN ('__label__Storia',)
3 NaN ('__label__Storia',) NaN ('__label__Storia',)
4 ('__label__Religione_e_Magia',) NaN
作为所需的输出,我希望将所有值存储在同一列中,即
selected_vals
0 NaN
1 ('__label__Religione_e_Magia',)
2 ('__label__Storia',)
3 ('__label__Storia',)
4 ('__label__Religione_e_Magia',)
关于如何处理这个问题的建议?
谢谢
【问题讨论】: