【问题标题】:How yo count the changes done in new csv file compared to the previous与以前相比,如何计算新 csv 文件中所做的更改
【发布时间】:2022-09-22 21:11:36
【问题描述】:

我们有两个 csv 文件 - new.csvold.csv

old.csv 包含四行:

    abc done
    xyz done
    pqr done
    rst pending

new.csv 包含四个新行:

    abc pending
    xyz not_done
    pqr pending
    rst done

我需要在不使用熊猫的情况下使用两件事

  • count1 = 从完成更改为待处理的条目数 = 2 (abc, pqr)
  • count2 = 从 done 更改为 not_done 的条目数 = 1 (xyz)
  • 数字“三”和“五”与您显示的 csv 不匹配
  • 如果两个 csv 始终具有相同数量和顺序的项目,您可以使用 zip 进行迭代并过滤不相等的行。类似于sum([1 for a,b in zip(csv1.readlines(), csv2.readlines()) if a != b])
  • @OrenIshShalom 立即检查

标签: python csv data-science


【解决方案1】:

首先将这两个文件导入python列表:

oldcsv = []
with open("old.csv") as f:
    for line in f:
        oldcsv.append(line.strip().split(","))
newcsv = []
with open("new.csv") as f:
    for line in f:
        newcsv.append(line.strip().split(","))

现在您只需使用 zip() 同时遍历这两个列表。我假设两个 CSV 文件以相同的顺序列出条目。

count1 = 0
count2 = 0
for oldentry, newentry in zip(oldcsv, newcsv):
    assert(oldentry[0] == newentry[0]) # Throw error if entry names do not match
    if oldentry[1] == "done":
        if newentry[1] == "pending":
            count1 += 1
        elif newentry[1] == "not_done":
            count2 += 1

希望这是有用的:)

【讨论】:

  • 有断言错误,顺序也可能不一样。你能帮我吗
猜你喜欢
  • 2022-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2022-12-10
相关资源
最近更新 更多