pandas:加入函数导致NaN值

时间:2017-05-22 18:09:57

标签: python pandas

我需要加入2个数据帧;

df1看起来像这样 -

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

df2看起来像这样(道琼斯回归)

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

我正在尝试将df1加入df2:table = df1.join(df2)

但是当我这样做时,表中的Value列将缩减为所有NaN。 有人可以指导我这个。谢谢......!

1 个答案:

答案 0 :(得分:1)

map + assign

  • map构建一个词典,其中year的{​​{1}}索引是键,df2值`是值。
  • df2'smap s df1列一起使用。
  • Year这是一个附加到assign
  • 的新列Value
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这样的

join