python 中 merge_asof 的问题

问题描述 投票:0回答:1

我正在尝试合并用户和最接近的日期时间(向前)上的两个熊猫。我的代码是这样的:

df1 = df1.sort_values([ 'user_id', 'withdrawal_request_date']).reset_index(drop = True)
deposits = deposits.sort_values(['user_id', 'deposit_date']).reset_index(drop = True)

d_merged = pd.merge_asof(deposits, df1, left_on='deposit_date', right_on = 'withdrawal_request_date', by='user_id', direction='forward')

但是,我不断收到此错误:

ValueError:左键必须排序

我尝试删除时区,但仍然出现同样的错误。另外,正如你所看到的,我尝试重置索引,但仍然没有任何结果。

python pandas merge
1个回答
0
投票

不需要按用户 ID 排序,因为精确连接将使用它。只需按左连接和右连接列对 df 进行排序,即取款_请求_日期和存款_日期。

df1 = df1.sort_values(['withdrawal_request_date'])
deposits = deposits.sort_values(['deposit_date'])
© www.soinside.com 2019 - 2024. All rights reserved.