2016-01-25 21 views
8

'un iki sütununu birleştirirken nan'u kaldırmayı denemiyorum ama kaldıramıyorum.Panda Data çerçevesinde iki sütunu birleştirirken nan değeri nasıl kaldırılır?

Veri gibidir:

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

istediğim:

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

Çıktı alıyorum:

feedback_request_id 
568a8c25cac4991645c287acnan 
568df45b177e30c6487d3603nan 
nan568df434832b090048f34974 
nan568cd22e9e82dfc166d7dff1 
568df3f0832b090048f34711nan 
nan568e5a38b4a797c664143dda 
İşte
feedback_request_id 
568a8c25cac4991645c287ac 
568df45b177e30c6487d3603 
568df434832b090048f34974 
568cd22e9e82dfc166d7dff1 
568df3f0832b090048f34711 
568e5a38b4a797c664143dda 

benim kodudur

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

Ama hatayı veriyor:

Ben de denedim

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 

cevap

14

kullanabilirsiniz combine_first veya 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 
İlgili konular