【问题标题】:Reading csv row-wise and matching conditions in Python在 Python 中逐行读取 csv 和匹配条件
【发布时间】:2021-05-21 10:23:52
【问题描述】:

我正在使用 python 和 csv,试图检查文件的每一行以获取特定值。我认为我的循环是错误的。在哪里可以添加条件进行检查?

它基本上必须检查现有数据集,如果找到相同的数据集则中断循环,否则应继续写入。这是我尝试过的:

csvfile = open('file1.csv','r')
csvFileArray = []
for row in csv.DictReader(csvfile):
    csvFileArray.append(row)
    
for i in range(0,lines):
    #print(csvFileArray[i])
    (firstentry == csvFileArray[i])

csv 数据:

Status,School,Details
Accepted,Notre Dame / Mendoza,GMAT: 690 Round: Round 4 | Midwest
Note,Vanderbilt / Owen,GRE: 318 Round: Round 2
Waitlisted,Dartmouth / Tuck,GMAT: 720 Round: Round 2

对于条件: 它将主要匹配新条目的状态、学校、详细信息。如果新条目与现有条目相同,则 break else writerow

【问题讨论】:

  • 从您的 csv_file 和条件值中添加示例内容。

标签: python csv file-handling


【解决方案1】:
import csv

seen = set()
with open("tmp.csv", "r") as f:
    for line in csv.reader(f, delimiter=","):
        if line in seen:
            break
        else:
            seen.add(line)

根据您的目标,您可能还会发现这种方法很有用:How can I filter lines on load in Pandas read_csv function?

【讨论】:

  • 谢谢,这里的条件如何工作?我对问题进行了编辑。请检查。尝试不使用熊猫
  • 条件可以是你喜欢的任何东西,所以我把它省略了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-08
  • 2017-10-19
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
相关资源
最近更新 更多