Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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文件中获取一列,并将此列与另一个csv文件中的另一列进行比较,以找到匹配项 我不能用熊猫,我提取表格后卡住了 def first(): with open('1.csv') as csv_file: for line in csv_file.readlines(): array = line.split(',') list_pk = array[1] def sec(): with open('2

我需要从一个csv文件中获取一列,并将此列与另一个csv文件中的另一列进行比较,以找到匹配项

我不能用熊猫,我提取表格后卡住了

def first():
    with open('1.csv') as csv_file:
        for line in csv_file.readlines():
            array = line.split(',')
            list_pk = array[1]

def sec():
    with open('2.csv') as csv_file:
        for line in csv_file.readlines():
            array = line.split(',')
            list_fk = array[0]

我希望它能帮助你

def findMatch():
  with open('old.csv', 'r',  newline='') as t1, open('new.csv', 'r',  newline='') as t2:
    for line1,line2 in zip(t1,t2):
      if line1.split(' ')[colum_index]!=line2.split(' ')[colum_index]:
        print(line1,line2)
findMatch()
  • 如需更多帮助,请参阅
  • 有关zip/izip的信息,请参阅
使用zip_

from itertools import zip_longest
def findMatch():
  with open('old.csv', 'r',  newline='') as t1, open('new.csv', 'r',  newline='') as t2:
    for line in zip_longest(t1,t2):
      print(line)
      if line[0]!=line[1]:
        print("nq")
findMatch()

zip_最长引用:-

整行匹配还是只匹配特定列?还有,你的文件有多大?它们可以加载到内存中吗?@urban-specific-column,该文件很小,最大值为4000行您读取的ID。无论如何,我发现使用
csvkit
csvjoin
将文件和
csvgrep
值连接在一起通常比编写python脚本更容易,尽管有时这些工具受到限制,无法定义您在问题中所说的“比较”。您也没有正确打开csv文件-建议您查看文档中的示例。我想您应该将每行的第一项存储在某些数据结构中。当您在Python 3.x中
open()
csv文件时,您应该使用
newline='
,如文档中所示。@soheshdoshi
if line1.split('[1] != line2.split(“”)[0]:indexer错误:列表索引超出范围
由于列长度为different@Nikolai这就是我给你zip/izip参考的原因。请做一些研究