gpt4 book ai didi

python - 删除与另一个 CSV 中的行相同的行

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:19 26 4
gpt4 key购买 nike

我正在尝试遍历 2 个 CSV 文件的每一行。如果两个文件中的纬度和经度字段相同,我想丢弃这一行。

我试过以下方法

import numpy
f=numpy.genfromtxt('/wind/addandclaimwithinlatlon.csv', delimiter=',',
dtype=None, skiprows=0)
f1=numpy.genfromtxt('/wind/new_2011.csv',delimiter=",",dtype=None,skiprows=0)
final=[]
for row in f:
for row1 in f1:
if row[1]==row1[0] and row[2]==row1[1]:
print "duplicates"
else:
final.append([row[0],row[1],row[2]])

numpy.savetxt('/wind/addclaimwithinlatlonwithout2011.csv',
final, delimiter=',', fmt='%s')

它不会失败,但它只是运行了很长时间并且没有产生任何输出。它有什么问题?有没有其他方法可以更快地做到这一点?

最佳答案

由于您的文件已成功加载,看来问题出在您的代码上。

因此,您可以使用 itertools.zip_longest(在 python 2.X izip_longest 中)来压缩您的文件,然后使用列表理解来代替多重索引和嵌套循环保留预期的行。

from itertools import zip_longest
import numpy
f=numpy.genfromtxt('/wind/addandclaimwithinlatlon.csv',delimiter=",",dtype=None,skiprows=0)
f1=numpy.genfromtxt('/wind/new_2011.csv',delimiter=",",dtype=None,skiprows=0)
final=[row for row,row1 in zip_longest(f,f1) if len(row)>3 and len(row1)>1 and row[1:3]!=row1[:2]]

请注意,您可以使用一个切片来代替多个索引来比较 row[1],row[2]row1[0],row[1]

关于python - 删除与另一个 CSV 中的行相同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155974/

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