Python 数据帧比较挂起,但没有错误消息

Python 数据帧比较挂起,但没有错误消息,python,pandas,Python,Pandas,这是我第一次尝试熊猫,所以我想知道是什么问题。我试图比较两个数据帧,每个数据帧大约有30000行。我的第一个直觉让我迭代两个数据帧,因此对于df1中的每个条目,我们迭代df2中的所有行,以查看它是否存在 也许根本没有必要,还有更简单的选择。这就是我所做的。问题是,它只是挂起而没有输出任何错误消息,但我无法确定是什么导致它挂起 import pandas as pd dfOld = pd.read_excel("oldfile.xlsx", header=0) dfNew = pd.read_

这是我第一次尝试熊猫,所以我想知道是什么问题。我试图比较两个数据帧,每个数据帧大约有30000行。我的第一个直觉让我迭代两个数据帧,因此对于df1中的每个条目,我们迭代df2中的所有行,以查看它是否存在

也许根本没有必要,还有更简单的选择。这就是我所做的。问题是,它只是挂起而没有输出任何错误消息,但我无法确定是什么导致它挂起

import pandas as pd


dfOld = pd.read_excel("oldfile.xlsx", header=0)
dfNew = pd.read_excel("newfile.xlsx", header=0)
columns = ["NAME","ADDRESS","STATUS","DATE"]
result = pd.DataFrame(columns=columns)

for index, rowOld in dfOld.iterrows():

    for index, rowNew in dfNew.iterrows():

        if rowOld.all() != rowNew.all():
            result.loc[len(result)] = rowOld.all()


writer = pd.ExcelWriter('Deletions.xlsx', engine='xlsxwriter')
result.to_excel(writer, sheet_name='Deleted')
writer.save()
每个数据帧的示例数据:

$1 & UP STORE CORP.142A | N FRANKLIN ST | 409 408 | 31/07/2014
$1 store | 110 n martin ave | 408 | 07/01/2015
0713, LLC | 1412 N. County Road West | 405 408 413 | 16/07/2015
1 2 3 MONEY EXCHANGE LLC | 588 N MAIN ST | 405 409 408 | 22/05/2015


$1 store premium | 110 n martin ave | 408 | 07/01/2015
0713, LLC | 1412 N. County Road West | 405 408 413 | 16/07/2015
1 2 3 MONEY EXCHANGE LLC | 588 N MAIN ST | 405 409 408 | 22/05/2015
1145 Parsons Inc | 1145 Parsons Ave | 405 408 | 19/11/2013
所需的输出是数据帧
结果
中填充了
dfOld
中不存在于
dfNew
中的行。因此,新的
结果
数据帧将由以下部分组成:

$1 & UP STORE CORP.142A | N FRANKLIN ST | 409 408 | 31/07/2014
$1 store | 110 n martin ave | 408 | 07/01/2015
问题是它不能处理大量的条目(每个数据帧30.000个条目),所以即使它可以处理较小的样本,我想知道这是否是处理那么多条目的方法

您可以使用参数
indicator=True
,然后通过以下方式进行过滤:

上次删除辅助列
\u merge

print (df[df._merge == 'left_only'].drop('_merge', axis=1))
                      NAME           ADDRESS   STATUS        DATE
0  $1 & UP STORE CORP.142A     N FRANKLIN ST  409 408  31/07/2014
1                 $1 store  110 n martin ave      408  07/01/2015

您能添加数据样本(每个df 5,6行)和所需输出吗?谢谢,如果您获得所需输出,它可以很容易验证。此外,我尝试了您的解决方案,并使用样本工作(正确或错误,我不确定)谢谢。这实际上达到了我想要的效果,而且没有挂起,不像我的方法。
print (df[df._merge == 'left_only'].drop('_merge', axis=1))
                      NAME           ADDRESS   STATUS        DATE
0  $1 & UP STORE CORP.142A     N FRANKLIN ST  409 408  31/07/2014
1                 $1 store  110 n martin ave      408  07/01/2015