将3个csv文件与Python文件进行比较

将3个csv文件与Python文件进行比较,python,pandas,dataframe,csv,Python,Pandas,Dataframe,Csv,我需要比较3个csv文件与3列(所有3列csv文件上的所有三列名称相同)进行比较,以计数1)重复的内容和2)不同的内容(仅计数即可) 例如,需要检查csv1 colB,并与csv2 colB和csv3 colB进行比较,以确定重复的计数总数(在csv2,3上匹配)和coutn总数(在csv2/3上匹配) 所有3个csv都有相同的列名,colB有ip地址,colC有哈希值,colD有域名 我在匹配colB的测试中尝试了以下方法: print(df[~df.colB.isin(df1.colB)])

我需要比较3个csv文件与3列(所有3列csv文件上的所有三列名称相同)进行比较,以计数1)重复的内容和2)不同的内容(仅计数即可)

例如,需要检查csv1 colB,并与csv2 colB和csv3 colB进行比较,以确定重复的计数总数(在csv2,3上匹配)和coutn总数(在csv2/3上匹配)

所有3个csv都有相同的列名,colB有ip地址,colC有哈希值,colD有域名

我在匹配colB的测试中尝试了以下方法:

print(df[~df.colB.isin(df1.colB)]) #prints out all columns from df
试图添加:

print(df[~df.colB.isin(df1.colB).count()]) #get multiple traceback errors

尝试使用
value\u counts()
您将获得True和False值

df.colB.isin(df1.colB).value_counts()

我希望这就是您想要的。

让我们将数据帧称为
df1
df2
df3

数据帧中的每一列都是一个序列,因此可以比较它们以获得布尔序列:

checkB12 = (df1.colB == df2.colB)
这将给出一个具有(
True,True,False,
)或类似内容的Pandas系列对象

同样地

checkB13 = (df1.colB == df3.colB)
那么

这将为您提供一系列布尔值,当
df1
df2
df3
至少存在一个匹配时,为true。执行
duplicated.sum()
将为您提供真实值的总数,即
df1
中至少在
df2
df3
中复制一次的案例总数


我真的不明白您所说的数据帧之间的“不同之处”是什么意思,因此我无法确定您需要什么代码。

您的数据帧中的索引是否相同?我的意思是,索引通常是0,1,2,3等等。它们都一样,谢谢你,卡蒂克。“假”值计数是否为重复计数?可以通过添加第三个csv查找来完成此操作吗?i、 e df2和df1。
duplicated = checkB12 or checkB13