小编Gop*_*lia的帖子

仅当单独列中的差异在 [-n, +n] 范围内时才在公共列上连接两个 DataFrame

我有两个数据框df1df2如下所示:

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

Run Code Online (Sandbox Code Playgroud)

我的最终答案应该是:

final

Date        BillNo.     Amount
10/08/2020  ABBCSQ1ZA   876
10/16/2020  AA171E1Z0   5491
Run Code Online (Sandbox Code Playgroud)

Date BillNo. Amount当值范围的差异在 [-5,5] 之间时,如何从两个数据框中找到公共行?

我知道如何使用以下方法查找公共行:

df_all = df1.merge(df2.drop_duplicates(), on=['Date', 'BillNo.', 'Amount'], 
                   how='outer', indicator=True)
Run Code Online (Sandbox Code Playgroud)

但是,这不会给出范围内的行。有谁能帮忙吗?

编辑:我们可以看到在df1: 10/14/2020,AC9268RE3,198df2: 10/14/2020,AC9268RE3,212不同的是14,因此这不应该被纳入共同行

python dataframe pandas

7
推荐指数
1
解决办法
111
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1