我有两个 CSV 文件,CSV1
和 CSV2
,具有多个列和行。其中一列标题为 ID
.
我想做的是检查CSV1
的行,如果有 ID
在CSV2
的 ID
匹配 CSV1
的列的行 ID
,那么我想保留那一行。如果没有匹配项,那么我想从 CSV1
中删除该行.
基本上是CSV1
中的数据与我相关,但只有 CSV2
中的人.两者之间的唯一联系是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,并在每次检查第一个文件的其中一行时查找这些 ID。
例如:
# extract ID column from CSV file 2 into a set
Ids = { row[1] for row in smartee }
# pick only rows whose ID is in Ids
filtered_rows = [item for item in aeries if item[1] in Ids]
关于python - 如何根据使用特定列进行比较的另一个 CSV 中的行删除一个 CSV 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27953589/