ValueError:合并键在左侧熊猫中包含空值

时间:2019-08-04 19:52:20

标签: python pandas

编辑: 我有两个数据集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

不知道出了什么问题。任何帮助深表感谢!

1 个答案:

答案 0 :(得分:0)

下面的代码应该可以工作(基于上面提供的数据)。如果关注的是日期时间对象的深度,则可能必须将两者格式化为相同的深度然后合并

df1= pd.merge(df1,df2, on=['EXECUTION_TS'],how='outer')