Python 比较CSV文件的两列
我有一个有两列的csv文件。第一列包含2676个主机名条目,第二列包含964个主机名条目。我想比较这些列并打印列2中的数据,但不打印列1中的数据 这是密码Python 比较CSV文件的两列,python,csv,Python,Csv,我有一个有两列的csv文件。第一列包含2676个主机名条目,第二列包含964个主机名条目。我想比较这些列并打印列2中的数据,但不打印列1中的数据 这是密码 import re from csv import DictReader with open("devices.csv") as f: a1 = [row["Device Name"] for row in DictReader(f)] #print a1 #print len(a1) ##下面的代码为我提供了第2列的数据 wi
import re
from csv import DictReader
with open("devices.csv") as f:
a1 = [row["Device Name"] for row in DictReader(f)]
#print a1
#print len(a1)
##下面的代码为我提供了第2列的数据
with open('dump_data', 'r') as f:
for line in f:
line = re.split(': |, |\*|\n', line)
listOdd = line[1::2]
for i in listOdd:
print i
result[]
# print listOdd
for i in a1:
for j in listOdd:
if i != j:
result.append(i)
# print i
break
else:
pass
print result
print len(result)
我也尝试过其他方法,比如使用布景和熊猫
输出不准确,基本上必须将第2列中的每个元素与第1列中的每个元素进行比较。我得到的重复条目很少,因为差异集似乎是显而易见的解决方案。以下方法将每列读入其自己的
set()
。然后,它简单地使用函数为您提供col1
中的条目,但不在col2
中(这与简单地使用-
运算符相同):
因此,如果您的CSV文件包含以下条目:
aaa,aaa
bbb,111
ccc,bbb
ddd,222
eee
fff
所需的产出将是:
['111', '222']
CSV文件中的数据在添加到集合之前可能需要清理,例如,
example.COM
和example.COM
当前将被视为不同。在进行比较之前,您是否正确获取了两列数据?你能打印主机名的2676条和964条吗?在进行任何比较之前,请确保您正确访问了csv
文件中的数据。请使用“devices.csv”和“dump_data”中的示例数据更新您的问题。
['111', '222']