gpt4 book ai didi

python - 比较两个 CSV 文件并查找匹配项 Python

转载 作者:行者123 更新时间:2023-12-01 04:54:29 27 4
gpt4 key购买 nike

我有两个类似的 CSV 文件

CSV1

H1,H2,H3
arm,biopsy,forearm
heart,leg biopsy,biopsy

器官.csv

arm
leg
forearm
heart
skin

我需要比较这两个文件并获得一个像这样的输出列表 [arm,forearm,heart,leg] 但我当前正在处理的脚本没有给我任何输出(我也想在输出,尽管它与同一细胞中的活检混合)。这是到目前为止的代码。如何获取所有匹配的单词?

import csv
import io

alist, blist = [], []

with open("csv1.csv", "rb") as fileA:
reader = csv.reader(fileA, delimiter=',')
for row in reader:
alist.append(row)
with open("organs.csv", "rb") as fileB:
reader = csv.reader(fileB, delimiter=',')
for row in reader:
blist.append(row)

first_set = set(map(tuple, alist))
secnd_set = set(map(tuple, blist))

matches = set(first_set).intersection(secnd_set)
print matches

最佳答案

试试这个:

import csv

alist, blist = [], []

with open("csv1.csv", "rb") as fileA:
reader = csv.reader(fileA, delimiter=',')
for row in reader:
for row_str in row:
alist += row_str.strip().split()

with open("organs.csv", "rb") as fileB:
reader = csv.reader(fileB, delimiter=',')
for row in reader:
blist += row

first_set = set(alist)
second_set = set(blist)

print first_set.intersection(second_set)

基本上,通过 csv 读取器迭代 csv 文件会返回一行,它是像这样的项目(字符串)列表 ['arm', 'biopsy', 'forearm'],因此您必须对要插入的列表求和所有项目。

另一方面,要删除重复项,只需要通过 set() 函数进行一次集合转换,并且交集方法会返回包含元素的另一个集合。

关于python - 比较两个 CSV 文件并查找匹配项 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27749561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com