如何在合并 pandas 数据框中的两列时删除 nan 值? [英] How to remove nan value while combining two column in Panda Data frame?
本文介绍了如何在合并 pandas 数据框中的两列时删除 nan 值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试但无法在组合 DataFrame
的两列时删除 nan
.
I am trying but not able to remove nan
while combining two columns of a DataFrame
.
数据就像:
feedback_id _id
568a8c25cac4991645c287ac nan
568df45b177e30c6487d3603 nan
nan 568df434832b090048f34974
nan 568cd22e9e82dfc166d7dff1
568df3f0832b090048f34711 nan
nan 568e5a38b4a797c664143dda
我想要:
feedback_request_id
568a8c25cac4991645c287ac
568df45b177e30c6487d3603
568df434832b090048f34974
568cd22e9e82dfc166d7dff1
568df3f0832b090048f34711
568e5a38b4a797c664143dda
这是我的代码:
df3['feedback_request_id'] = ('' if df3['_id'].empty else df3['_id'].map(str)) + ('' if df3['feedback_id'].empty else df3['feedback_id'].map(str))
我得到的输出:
feedback_request_id
568a8c25cac4991645c287acnan
568df45b177e30c6487d3603nan
nan568df434832b090048f34974
nan568cd22e9e82dfc166d7dff1
568df3f0832b090048f34711nan
nan568e5a38b4a797c664143dda
我也试过这个:
df3['feedback_request_id'] = ('' if df3['_id']=='nan' else df3['_id'].map(str)) + ('' if df3['feedback_id']=='nan' else df3['feedback_id'].map(str))
但它给出了错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
推荐答案
您可以使用 combine_first
或 填充
:
You can use combine_first
or fillna
:
print df['feedback_id'].combine_first(df['_id'])
0 568a8c25cac4991645c287ac
1 568df45b177e30c6487d3603
2 568df434832b090048f34974
3 568cd22e9e82dfc166d7dff1
4 568df3f0832b090048f34711
5 568e5a38b4a797c664143dda
Name: feedback_id, dtype: object
print df['feedback_id'].fillna(df['_id'])
0 568a8c25cac4991645c287ac
1 568df45b177e30c6487d3603
2 568df434832b090048f34974
3 568cd22e9e82dfc166d7dff1
4 568df3f0832b090048f34711
5 568e5a38b4a797c664143dda
Name: feedback_id, dtype: object
这篇关于如何在合并 pandas 数据框中的两列时删除 nan 值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文