【发布时间】:2018-07-21 09:52:43
【问题描述】:
大家好,所以我在尝试使用两个单独的 CSV 文件来完成我需要的事情时遇到了一些麻烦。我发现一些散布在网络上的脚本可以做我想做的事,但不完全是。我不再有我尝试过的代码,因为我已经多次删除不同的代码,以至于我已经盯着一个空白的 py 文件看了很长时间。首先是 CSV 文件。
netscan.csv(包含计算机名称和序列号,有正确的数据,有型号)
Name Serial Models
computer1 serial1 model1
computer2 serial2 model2
computer3 serial3 model3
computer4 serial4 model4
... ...
computer_list.csv(包含计算机名称和序列号,名称正确,名称不在 netscan.csv 中,没有型号,序列号错误)
Name Serial Models
computer1 serialZ
computerH serialN/A
computer3 serialQ
computer4 serialX
computer2 serialM
computerP serialN/A
所以我想做的是查看这两个文件,如果Name 列中的值匹配,我希望它将netscan.csv 中的行打印到一个新文件中,并对每一行执行此操作。之后,我希望它采用所有不存在的(例如 netscan.csv 中不存在的 computerH)并将它们添加到更新的正确信息下的新 csv 中。像这样的:
Name Serial Models
computer1 serial1 model1
computer2 serial2 model2
computer3 serial3 model3
computer4 serial4 model4
computerH serialN/A
computerP serialN/A
我已经尝试过合并、for 循环、写入行等,但我现在不知道如何才能做到这一点。任何帮助将不胜感激。
编辑:@unutbu 我从你的代码中得到的基本上是
Name Serial Models
computer1 serial1 model1
computer2 serial2 model2
computer3 serial3 model3
computer4 serial4 model4
computerH serialN/A
computerP serialN/A
computer2 serialN/A
computer3 serialN/A
computer4 serialN/A
因此,尽管几乎所有内容都正确,但 computer_list.csv 中仍有重复的 Name 行,如果它们被正确的信息替换,则需要将其删除。所以我想查找具有重复名称的行,如果 Serial 为 serialN/A,则将其删除。希望这更有意义。
【问题讨论】:
-
netscan.csv 或computer_list.csv 中是否存在重复行? (重复是指具有相同
Name的行,不一定是Serial或Models值。) -
也不,重复项仅在
result.csv中,我需要删除的重复项来自错误信息所在的computer_list.csv。我正在考虑让每一行都有一个重复的Name值,然后删除它ifSerial列是 N/A,但我不太确定如何语法。想法?
标签: python pandas csv automation analysis