Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较CSV文件的两列_Python_Csv - Fatal编程技术网

Python 比较CSV文件的两列

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

我有一个有两列的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列的数据

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