我想比较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
答案 0 :(得分:0)
您可以遍历所有行,例如将df
与df2
的每一行进行比较(假设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])))
会做