【发布时间】:2020-10-15 02:49:25
【问题描述】:
在比较两个数据帧中的两行时,我需要一些帮助。首先,我需要找到共同值,在这种情况下,它是来自名为 MX 的列中的值(它永远不会改变),一旦它们匹配,我需要比较整行以验证值是否相同以及是否它们确实是相同的就可以了(打印正常),但是如果它们不是甚至一个值都不是,我需要查看它应该是哪个值或不匹配的位置。
#这是固定的数据,不会受到修改(用于比较)。
Data:
dataframe1:
MX DT MN SC CS LN
0 1 11 1 400 1025 802436
1 5 21 4 240 3201 4025731
2 11 25 19 1428 2000 2013654
3 15 36 17 1005 6028 4251367
4 23 55 21 222 4017 1468532
5 38 32 33 426 4892 8347561
dataframe2:
MX DT MN SC CS LN
0 11 25 19 1428 2000 2013654
这是一种情况,它们在 MX:11 行中都匹配。在这两种情况下,整行都是相同的,但在某些情况下,它们不会与:
dataframe3:
MX DT MN SC CS LN
0 11 22 0 1427 2000 2013654
总之,如果任何行的值与 dataframe1 不同,我需要知道不匹配在哪里,哪个应该是预期值 (dataframe1)。 最好在 pandas 中尝试或将其作为 key:values 传递给字典并检查它?
【问题讨论】:
-
你的意思是
df1[df1["MX"].isin(df2["MX"])].eq(df2.to_numpy())? -
感谢您的回答@HenryYik。是的,我得到了
False和True,但是当是False时如何打印出正确的值?。
标签: python-3.x pandas dataframe