我有两个CSV文件,CSV1
和CSV2
,有多个列和行。其中一列的标题是ID
。在
我要做的是检查CSV1
的行,如果CSV2
的ID
列与CSV1
的行ID
匹配,那么我希望保留该行。如果没有匹配项,那么我想从CSV1
中删除该行。在
基本上,CSV1
中的数据与我相关,但只与{ID
列。所以我需要检查CSV1
中的所有行,看看ID
是否在CSV2
中的一行中。在
以下是我目前所掌握的情况。在
import csv
smarteeCSV = open("Smartee.csv", "r")
aeriesCSV = open("aeriesEditable.csv", "r+")
aeries = csv.reader(aeriesCSV, delimiter=',')##CSV1
smartee = csv.reader(smarteeCSV, delimiter=',')##CSV2
for row in aeries:
for item in smartee
if row[1] != item[1]##indexes for the columns with the ids
我已经知道我没有走上正轨,有人能帮忙吗?在
您可以提取第二个文件中的所有ID,并在每次检查第一个文件的某一行时进行查找。在
例如:
首先,阅读CSV2以生成一组ID:
然后,在读取CSV1时,只需检查ID是否在集合中:
^{pr2}$这假设CSV文件适合基于dict的读/写(即第一行是列名称的列表),但是如果列名称也来自其他信息,则很容易调整。在
根据您计划如何处理相关的数据行,您可能可以使用Python的内置^{} 函数来完成您需要的操作:
如果您想迭代处理这些行,对于第二部分,您可以在调用^{} 函数的结果上使用
for
循环。在相关问题 更多 >
编程相关推荐