1 回答
TA贡献1877条经验 获得超6个赞
使用map
s = df_a.id.map(dict(df_b[['id', 'A']].values))
df_a[df_a.A <= s]
Out[35]:
id A B C D
0 123 2019-09-10 00:00:00 1 True False
1 123 2019-09-10 00:10:00 1 True False
3 456 2019-09-05 01:00:00 1 True False
5 789 2019-09-10 10:00:00 1 True False
6 789 2019-09-11 00:50:00 1 True False
7 789 2019-09-12 12:00:00 1 True False
使用左merge和query
(df_a.merge(df_b[['id', 'A']], on='id', how='left', suffixes=('','_y'))
.query('A <= A_y').drop('A_y', 1))
Out[43]:
id A B C D
0 123 2019-09-10 00:00:00 1 True False
1 123 2019-09-10 00:10:00 1 True False
3 456 2019-09-05 01:00:00 1 True False
5 789 2019-09-10 10:00:00 1 True False
6 789 2019-09-11 00:50:00 1 True False
7 789 2019-09-12 12:00:00 1 True False
添加回答
举报