繁体   English   中英

如何导入 2 个 CSV 文件,比较另一个文件中是否存在值,并生成最终的 CSV 并在列中说明值是否存在?

[英]How do I import 2 CSV files, compare values if one exists in another and produce a final CSV with a column stating if value exists?

我有 2 个包含这些列的 csv 文件

CSV 1

在此处输入图像描述

CSV 2

在此处输入图像描述

所需的 output 将是另一个 CSV 文件,其中包含来自 CSV1 的所有列,并查看它是否存在于 CSV2 中。 如果为 True,则“Exist”列将包含 1,如果为 False,则包含 0。

在此处输入图像描述

有什么方法可以在不使用 Pandas 的情况下尽可能高效地做到这一点?

如果您想在不使用 Pandas 或其他软件包的情况下打开 CSV 文件,这是可能的,但效率不高。 那是因为您需要手动根据分隔符类型进行读取和拆分。 这是示例:

假设您分别有 list1.txt 和 list2.txt

name,email
red,red@gmail.com
blue,blue@gmail.com
name,email
green,green@gmail.com
red,red@gmail.com

然后,尝试运行下面的脚本

file = open('list1.txt', 'r')
data1 = file.readlines()
for i in range(len(data1)):
    data1[i] = data1[i].rstrip().split(',')
file.close()

file = open('list2.txt', 'r')
data2 = file.readlines()
for i in range(len(data2)):
    data2[i] = data2[i].rstrip().split(',')
file.close()

for i in range(1,len(data1)):
    isexist = 0
    for j in range(len(data2)):
        if (data1[i][0] == data2[j][0]) and (data1[i][1] == data2[j][1]):
            isexist = 1
            print(data1[i][0], data1[i][1], isexist)
    if isexist == 0:
        print(data1[i][0], data1[i][1], isexist)

最后,您有一个 output 如下所示

red red@gmail.com 1
blue blue@gmail.com 0

希望它对您的问题有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM