python - 如何根据使用特定列进行比较的另一个 CSV 中的行删除一个 CSV 中的行

标签 python loops csv compare

我有两个 CSV 文件,CSV1CSV2 ,具有多个列和行。其中一列标题为 ID .

我想做的是检查CSV1的行,如果有 IDCSV2ID匹配 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/

相关文章:

python - 在 Google Colab 中访问 '.pickle' 文件

python - 在 Python 中获取计时器刻度

java - 使用数组添加、查看、更新和删除学生记录

loops - 在循环迭代器变量上使用 goroutines

java - 3行只有for循环,很困惑

python - 如何使用 Pandas 保存行内的列表

json - 如何优化此Powershell脚本,将JSON转换为CSV?

Python - 清理数据以运行先验算法

python - 将 df 保存和检索为 .csv,而不丢失类型信息

python - 限制来自 Django QuerySet 的结果数量,而不使用切片