pandas merge_asof:不明确的参数类型错误

jcp*_*jcp 6 python python-3.x pandas

我正在尝试merge_asof从 Pandas使用,但出现错误:

TypeError: Function call with ambiguous argument types

可重现的例子:

import pandas as pd

a = pd.DataFrame({'foo': [1., 2.], 'bar': ['2019-01-01 00:00:10', '2019-01-01 00:00:20']})
b = pd.DataFrame({'foo': [2., 5.], 'baz': ['2019-01-01 00:00:05', '2019-01-01 00:00:25']})
a['bar'] = pd.to_datetime(a['bar'])
b['baz'] = pd.to_datetime(b['baz'])

pd.merge_asof(a,
              b,
              left_on='bar',
              right_on='baz',
              direction='backward',
              by='foo',
              allow_exact_matches=False)
Run Code Online (Sandbox Code Playgroud)

我试图检查 pandas.core.reshape.merge 文件,但没有成功解决问题

Ash*_*and 0

pd.merge_asof( left, right, on=None,by=None) 的问题是由于“ON”参数造成的。它必须是日期类型,否则会抛出参数类型不明确的错误。因此我们需要使用 pd.to_datetime() 将它们转换为 pandas datetime 对象来解决该错误。

在此输入图像描述