gpt4 book ai didi

python - 比较 CSV 文件中列中的条目并提取匹配项 - python

转载 作者:行者123 更新时间:2023-11-28 20:09:56 25 4
gpt4 key购买 nike

我有两个 CSV 文件(三列),我需要比较它们并从其他匹配的文件(五列)中提取行。文件的示例是:

文件1:

ATGCGCGACAGT, ch3, 123546
ATGCATACAGGATAT, ch2, 5141561615

......大约有 100 个条目

文件2:

ATGCGGCGACAGT,ch3, 123456,mi141515, AUCAGCUAUAUAU, UACGCAGAUAUAUA
ATCAGACGATTATGA, ch4, 4564764, mi653453, AUCAGCAAUUUUCG, AUACAGACAAAAA

....大约有 50000 个条目

我需要匹配这两个文件的列 1、2 和 3,使文件 1 的所有三列都应与文件 2 匹配。如果发生这种情况,则提取 4,5 和 6 列进行进一步处理。

我在想:

fhout=csv.writer(open('parsed_out', 'w'), delimiter=',')

for i in file1:

a=[0]
b=[1]
c=[2]
for x in file2:
d=[0]
e=[1]
f=[2]
g=[3]
h=[4]
i=[5]
if a==d and b==e and c==f:
fhout.writerow([g]+[h]+[i])
else:
pass

但有人告诉我,我可以使用散列或一些更好的方法,而不是为 file1 中的 10,000 或更多条目编写如此大的循环

请建议我实现此目标的更好方法。文件 1 和文件 2 都是从更复杂的文件中解析出来的。

最佳答案

下面按照您的建议使用集合理解为第一个文件创建哈希:

S = {tuple(line) for line in csv.reader(File1)}

然后在读取第二个文件时查找速度要快得多。

for line in csv.reader(File2):
key = tuple(line[:3])
if key in S:
print(line)

关于python - 比较 CSV 文件中列中的条目并提取匹配项 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9475937/

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