比较 2 个数据框,找出差异和缺失的行

时间:2021-06-10 07:30:04

标签: merge compare

我有一段时间无法获得正确的结果,因此我向您寻求解决方案。

我有 2 个数据框:

DF1:

throw

DF2:

 Trade Date  Transaction ID Expiry Date Type  Price   Power Brokerage  Unique
0   08.06.2021              10  2021-12-20  Buy  51.55  3000.0      NONE       1
1   08.06.2021              11  2021-12-20  Buy  51.55  3000.0      NONE       2
2   08.06.2021              12  2021-12-20  Buy  51.55  4000.0      NONE       1
3   08.06.2021              13  2021-12-20  Buy  51.55  5000.0      NONE       1
4   08.06.2021              14  2021-12-20  Buy  51.55  5000.0      NONE       2
5   08.06.2021              15  2021-12-20  Buy  52.10  1000.0      NONE       1
6   08.06.2021              16  2021-12-20  Buy  52.10  1000.0      NONE       2
7   08.06.2021              17  2021-12-20  Buy  52.10  1000.0      NONE       3
8   08.06.2021              18  2021-12-20  Buy  52.10  1000.0      NONE       4
9   08.06.2021              19  2021-12-20  Buy  52.10  1000.0      NONE       5
10  08.06.2021              20  2021-12-20  Buy  52.10  1000.0      NONE       6
11  08.06.2021              21  2021-06-21  Buy  69.50    25.0       TFS       1  

我想要做的是在列上合并这些 dfs:交易日期、到期日期、类型、权力、经纪业务、唯一性。请注意,我已经设置了唯一列来为具有相同属性的交易(没有交易 ID 和合同)获取某种唯一标识符,并获得应该修改哪个合约价格的结果(请记住,来自 DF1 的数据始终是正确的)哪个交易 ID 没有出现在 DF2 中,哪个合约没有出现在 DF1 中

我当前与外部联接的合并不包括 PRICE 列,以便从数据框中获取 Price_x 和 Price_y,但它无法正常工作。

在这种情况下,我想要的输出表应该是 3:

价格修改:

Trade Date    Contract  Type   Power  Price Brokerage Expiry Date  Unique
0   08.06.2021   Contract1   Buy  3000.0  51.60      NONE  2021-12-20       1
1   08.06.2021   Contract2   Buy  3000.0  51.60      NONE  2021-12-20       1
2   08.06.2021   Contract3   Buy  1000.0  52.08      NONE  2021-12-20       1
3   08.06.2021   Contract4   Buy  1000.0  52.08      NONE  2021-12-20       2
4   08.06.2021   Contract5   Buy  1000.0  52.20      NONE  2021-12-20       1
5   08.06.2021   Contract6   Buy  1000.0  52.20      NONE  2021-12-20       2
6   08.06.2021   Contract7   Buy  1000.0  52.20      NONE  2021-12-20       3
7   08.06.2021   Contract8   Buy  1000.0  52.20      NONE  2021-12-20       4
8   08.06.2021   Contract9   Buy  1000.0  52.20      NONE  2021-12-20       5
9   08.06.2021  Contract10   Buy  1000.0  52.20      NONE  2021-12-20       6
10  07.06.2021  Contract11  Sell     5.0  70.10       TFS  2021-07-30       1

DF2 中的失误:

Contract  Existing_Price  Correct_Price
0   Contract5            52.2          52.10
1   Contract6            52.2          52.10
2   Contract7            52.2          52.10
3   Contract8            52.2          52.10
4   Contract9            52.2          52.10
5  Contract10            52.2          52.10
6   Contract1            51.6          51.55
7   Contract2            51.6          51.55

DF1 中的失误:

Transaction ID Type  Price   Power
0              21  Buy  69.50    25.0
1              12  Buy  51.55  4000.0
2              13  Buy  51.55  5000.0
3              14  Buy  51.55  5000.0

我真的很困惑如何设置某种附加列,以便按照我想要的方式匹配合同和交易。

感谢您的帮助!

0 个答案:

没有答案
相关问题