Pandas 比较两个数据框并查找重复元素

Pandas Compare two data frames and look for duplicate elements

我想比较 df 和 df_equal。 df 包含几个单独的数据框

    import pandas as pd

    df1 = pd.DataFrame([[ 'b', 'b', 'b' ]],
        columns=['a', 'b', 'c'])

Output:
    a   b   c
0   b   b   b
    df2 = pd.DataFrame([[ 'x', 'x', 'x' ]],
        columns=['a', 'b', 'c'])
Output:
    a   b   c
0   x   x   x
df = pd.concat([df1, df2])
    a   b   c
0   b   b   b
0   x   x   x
df_equal = pd.DataFrame([[ 'x', 'x', 'x' ]],
    columns=['a', 'b', 'c'])

如何检查 df 是否重复?

我试过.equals:

for row in df:
    df.equals(exactly_equal)

我想要的输出:

False #first row in df 
True  #second row in df

您可以遍历行,例如将 df 的每一行与 df2 进行比较(假设 df2 只有一行):

for row in range(len(df)):
    print((df.iloc[row, ].values == df2.values).all())
False
True

我不明白你说的比较重复是什么意思,很含糊。 您是指将行或列中的重复项或值与数据中的值进行比较吗?

但是,我们可以通过以下方式比较两行中的值:

df.values[0]==df.values[1]
# [False False False]

或者我们通过以下方式将索引为 [1] 的第 2 行与整个数据集进行比较:

df.values[:][1]==df.values[:][:]
#[[False False False]
#[ True  True  True]]

我想这就是你想要的。如果我没有完全得到你的答案,我很抱歉。 试着让我知道!

import pandas as pd

df1 = pd.DataFrame([[ 'b', 'b', 'b' ]],
        columns=['a', 'b', 'c'])

df2 = pd.DataFrame([[ 'x', 'x', 'x' ]],
        columns=['a', 'b', 'c'])

df = pd.concat([df1, df2])

df_equal = pd.DataFrame([[ 'x', 'x', 'x' ]],
    columns=['a', 'b', 'c'])



for i in range(0,len(df)):
    print((df.iloc[i].equals(df_equal.iloc[0])))

会完成任务