How to remove nan value when merging two columns in Panda Data Frame?

I am trying but cannot remove nan by combining two columns of a DataFrame .

The data is similar to:

 feedback_id _id 568a8c25cac4991645c287ac nan 568df45b177e30c6487d3603 nan nan 568df434832b090048f34974 nan 568cd22e9e82dfc166d7dff1 568df3f0832b090048f34711 nan nan 568e5a38b4a797c664143dda 

I want:

 feedback_request_id 568a8c25cac4991645c287ac 568df45b177e30c6487d3603 568df434832b090048f34974 568cd22e9e82dfc166d7dff1 568df3f0832b090048f34711 568e5a38b4a797c664143dda 

Here is my code:

 df3['feedback_request_id'] = ('' if df3['_id'].empty else df3['_id'].map(str)) + ('' if df3['feedback_id'].empty else df3['feedback_id'].map(str)) 

The output I get is:

 feedback_request_id 568a8c25cac4991645c287acnan 568df45b177e30c6487d3603nan nan568df434832b090048f34974 nan568cd22e9e82dfc166d7dff1 568df3f0832b090048f34711nan nan568e5a38b4a797c664143dda 

I tried this, also:

 df3['feedback_request_id'] = ('' if df3['_id']=='nan' else df3['_id'].map(str)) + ('' if df3['feedback_id']=='nan' else df3['feedback_id'].map(str)) 

But this gives an error:

 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 
+8
python pandas
source share
1 answer

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 
+14
source share

All Articles