熊猫比较两个数据框并查找重复的元素

时间:2020-05-17 15:47:54

标签: python pandas data-science equals

我想比较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

3 个答案:

答案 0 :(得分:0)

您可以遍历所有行,例如将dfdf2的每一行进行比较(假设df2仅一行):

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

答案 1 :(得分:0)

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

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

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

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

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

我想这就是你想要的。如果无法完全得到您的答复,对不起。 尝试让我知道!

答案 2 :(得分:0)

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])))

会做