如何在python中逐行写入csv文件?

时间:2019-05-30 13:11:48

标签: python csv

我想用循环逐行编写一个csv文件userperday.csv。我有一个带有日期的列表dates,我想检查它们是否在第二个列表dates2中。我尝试了下面的代码

with open('userperday.csv', "w") as f:
    writer = csv.writer(f)
    for j in dates:
        n=0
        if j in dates2:
            n+=1
        rows=zip(j, n)
        for row in rows:
                writer.writerow(row)

我的预期输出是一个包含两列的csv文件,第一列中有列表dates中的日期,第二列中的日期应为1或0,因此如果特定日期为dates2与否。另外,我希望有一个标题。

1 个答案:

答案 0 :(得分:0)

我看到的问题是您继续增加n,但是在找到匹配项后不要将其设置回零。对于此类问题,我将使用字典来跟踪计数。

with open('userperday.csv',"w") as f:
  writer = csv.writer(f)
  rows = {}

  for j in dates:
      rows[j] = 0
      if j in dates2:
          rows[j] += 1

  #Fill in the header
  writer.writerow(["Date","Counts"])

  # Iterate through dict to get date and counts
  for key,val in rows.items():
      writer.writerow([key,val])