2017-01-20 7 views
1

DF1は値不足している別のデータフレームのデータを使用してナ:私はDF2を使用してDF1のNA埋めたいパンダフィル同じIDに基づいて

df2= 
ID age 
2 4 
4 5 
5 6 
6 7 

df1= 
ID age 
1` 12 
2 na 
3 23 
4 na 
5 na 
6 na 

を、私は別のDFを持っています同じIDに基づいて:

df1 (after fillna)= 
ID age 
1` 12 
2 4 
3 23 
4 5 
5 6 
6 7 

ありがとう!

答えて

2

あなたは、両方のデータフレームのための指標としてIDを設定し、インデックスを照合しながら、欠損値を埋めるfillna()方法を使用することができます:あなたが試すことができます別のオプションから値を取るcombine_first、ある

df1.set_index("ID").age.fillna(df2.set_index("ID").age).reset_index() 

# ID age 
#0 1 12 
#1 2 4 
#2 3 23 
#3 4 5 
#4 5 6 
#5 6 7 

をヌルでない場合は最初のデータフレーム、そうでない場合はインデックスと一致する列を持つ2番目のデータフレームから値を取ります。

df1.set_index("ID").combine_first(df2.set_index("ID")).reset_index() 

# ID age 
#0 1 12.0 
#1 2 4.0 
#2 3 23.0 
#3 4 5.0 
#4 5 6.0 
#5 6 7.0 
関連する問題