2017-05-22 12 views
1

私は参加する必要がある2つのデータフレームを持っています。テーブル= df1.join(DF2):this--pandas:NaN値の結果となる結合関数

Year    President   Party 
0 1920   Woodrow Wilson  Democratic  
1 1921  Warren G. Harding  Republican  
2 1922  Warren G. Harding  Republican 

DF2は、次のようになりますように

DF1は、私がDF2をDF1に参加しようとしています

   Value 
Date     
1920-12-31  NaN   
1921-12-31 0.127172   
1922-12-31 0.217386 

(ダウ・ジョーンズが返す)に見えます

しかし、これを行うと、表のValue列はすべてのNaNに縮小されます。 誰かが私にこれを案内してくれますか?ありがとうございました...!

答えて

0
map

+ assign

  • df2 Sインデックスのyearキーとdf2's [値]が値でされるとmapに辞書を構築します。
  • mapdf1s Yearカラムを使用してください。そうでなければ、あなたはこの

    のようにjoinに固執することができますdf1

df1.assign(Value=df1.Year.map(dict(zip(df2.index.year, df2.Value)))) 

    Year   President  Party  Value 
0 1920  Woodrow Wilson Democratic  NaN 
1 1921 Warren G. Harding Republican 0.127172 
2 1922 Warren G. Harding Republican 0.217386 

join

に取り付けた新しい列Value

  • assignこの
    df1.join(df2.set_index(df2.index.year), on='Year') 
    
        Year   President  Party  Value 
    0 1920  Woodrow Wilson Democratic  NaN 
    1 1921 Warren G. Harding Republican 0.127172 
    2 1922 Warren G. Harding Republican 0.217386 
    
  • +0

    ご連絡いただきありがとうございます。どちらの方法も素晴らしいです... – trulyrural

    +0

    @trulyruralあなたは大歓迎です。お役に立てて嬉しいです。 – piRSquared

    関連する問題