我有两个数据帧df1
和df2
,如下所示:
df1
Date BillNo. Amount
10/08/2020 ABBCSQ1ZA 878
10/09/2020 AADC9C1Z5 11
10/12/2020 AC928Q1ZS 3998
10/14/2020 AC9268RE3 198
10/16/2020 AA171E1Z0 5490
10/19/2020 BU073C1ZW 3432
df2
Date BillNo. Amount
10/08/2020 ABBCSQ1ZA 876
10/11/2020 ATRC95REW 115
10/14/2020 AC9268RE3 212
10/16/2020 AA171E1Z0 5491
10/25/2020 BPO66W2LO 344
我的最后答案应该是:
final
Date BillNo. Amount
10/08/2020 ABBCSQ1ZA 876
10/16/2020 AA171E1Z0 5491
当值范围的差异在[-5,5]之间时,如何使用Date BillNo. Amount
从两个数据帧中查找公共行
我知道如何使用以下命令查找公用行:
df_all = df1.merge(df2.drop_duplicates(), on=['Date', 'BillNo.', 'Amount'],
how='outer', indicator=True)
但是,这不会给出范围内的行。有人能帮忙吗
编辑:我们可以在df1: 10/14/2020,AC9268RE3,198
和df2: 10/14/2020,AC9268RE3,212
中看到差异是14,因此这不应该包含在公共行中
我们可以合并,然后执行查询以删除不在范围内的行:
只要在每个帧中只有一行对应于特定的(日期,BillNo)组合,这种方法就可以很好地工作
我们可以设置
Date
和BillNo.
作为索引,同时减去数据帧,并仅过滤出值b/w-5到5使其更通用于任何n
或
您可以使用merge_asof:
输出
相关问题 更多 >
编程相关推荐