基于公共列合并不同大小的pandas数据帧

时间:2017-03-30 04:03:09

标签: python pandas

我有一个数据框,其日期时间索引是2006-01-19到2007-01-25,如下所示:

         YEAR   DOY  temperature
datetime                             
2016-01-19  2016.0    NaN
2016-01-20  2016.0    NaN
2016-01-21  2016.0    NaN
2016-01-22  2016.0    NaN
2016-01-23  2016.0    NaN
.....
2017-01-24  2017.0    NaN

上述数据框中的所有temperature值均为NaN。

我想加入另一个包含temperature值的数据框,一年中的每一天(共366个):

   YEAR  DOY  temperature 
0  2013    1         3.66 
1  2013    2         4.00 
2  2013    3         1.38 
3  2013    4        -0.44 
.....
4  2013    366       0.22 

我想根据DOY列加入这些数据框,以便例如第一个数据帧的第22天具有从第二个数据帧获得的第22天的temperature值。我试过这个:

df_a.merge(df_b, on='DOY', suffixes=('_x', ''))

然而,这不起作用。我该如何解决?

1 个答案:

答案 0 :(得分:1)

我通常使用完整的语法:

merged = pd.merge(df_a, df_b, how='left', left_on='DOY', right_on='DOY', suffixes=('_x', ''))

这种合并方式对我个人来说更清晰。

您可以查看documentation on merging以了解有关合并的更多信息。