我正在进行比较,以确保df1中的帐号不会泄漏到df2中的其他帐号
我的目的是识别并输出每个df中包含任何“不需要的”匹配帐号的行坐标和值
df1和df2有一个包含帐号的列,如下所示:
df1
Account Number
1234
5678
9101
1121
df2
Account Number
3141
5161
7181
9202
1222
1234
df2中的行数不同于df1,两个数据帧中都有一个匹配值1234。考虑到每行计数从零开始,我希望的输出如下:
df1 Row 0 = df2 Row 5 as 1234
我是新来的熊猫,所以请原谅我的术语和方法来完成这一点。如果有更好更棒的方法来做这件事,我很乐意听到并实施它。你知道吗
我做了研究,我想可能有一种方法可以使用合并或isin方法?你知道吗
任何想法都将不胜感激()
使用
account number
作为结果DataFrame
中的索引并将行号存储在列中是有意义的。最简单的解决方案是检查df1
和df2
中的每一对索引,并将行号存储在df3
,它的复杂性为O(n^2)。你知道吗编辑:看起来,您可以通过使用
.isin
过滤df1
和df2
来提高性能,尽管我只使用模拟数据对其进行了测试。它仍然是O(n^2),但现在n是匹配帐户的数目,而不是行的总数。你知道吗编辑2:我可以用这个版本获得更好的性能,而且更简单:
编辑3:如果账号在
df1
和df2
中不唯一,则无法使用account number
作为索引:您可以对列进行合并,然后使用输出查找原始数据集中的问题行
合并将返回一个数据帧,其中包含“Account Number”相等的行。
.values
将把它转换成一个numpy数组,您可以用它来查找您需要的原始数据帧中的哪些行?你知道吗相关问题 更多 >
编程相关推荐