编辑: 我有两个数据集df1和df2。 df1看起来像这样:
EXECUTION_TS HR
0 5/6/2019 9:20 127
1 5/6/2019 9:21 126.5
2 5/6/2019 9:22 130
3 5/6/2019 9:23 114
... ... ...
和df2看起来像
EXECUTION_TS PRICE
0 5/6/2019 8:58 300
1 5/6/2019 9:22 400
2 5/6/2019 10:30 600
... ... ...
我希望合并两个数据框的结果看起来像这样:
EXECUTION_TS HR PRICE
0 5/6/2019 9:20 127
1 5/6/2019 9:21 126.5
2 5/6/2019 9:22 130 400
3 5/6/2019 9:23 114
... ... ... ...
现在我正在使用代码
df1 = pd.merge_asof(df1, df2, on="EXECUTION_TS", direction="nearest", tolerance=pd.Timedelta('500ms'))
因为df2的EXECUTION_TS达到了毫秒级,这就是为什么我使用merge_asof而不是merge的原因。 我有很多这样的数据集,它们看起来与上面的df1和df2相似,并且我以相同的方式遍历和合并。一些数据集似乎合并得很好,而另一些给我这个错误:
ValueError: Merge keys contain null values on left side
不知道出了什么问题。任何帮助深表感谢!
答案 0 :(得分:0)
下面的代码应该可以工作(基于上面提供的数据)。如果关注的是日期时间对象的深度,则可能必须将两者格式化为相同的深度然后合并
df1= pd.merge(df1,df2, on=['EXECUTION_TS'],how='outer')