【发布时间】:2021-12-28 17:34:44
【问题描述】:
我有一些代码可以查看 .csv 文件的行并检查这些行是否包含来自另一个 .csv 文件的特定列的任何值。
这些文件如下所示:
查找文件:
0: TextExclude, text, other
1: aa, , x , y
2: bb, , x , y
3: cc, , x , y
我要在其中找到这些值的文件:
0: x, longtext, exclude
1: x, helloaa, 0
2: x, testaa, 0
3: x, testcc, 0
4: x, no, 0
5: x, aabb, 0
我的代码的输出应该在除第 4 行之外的每一行中将“包含”列的值从 0 更改为 1,从而产生此 预期输出 csv 表:
0: x, longtext, exclude
1: x, helloaa, 1
2: x, testaa, 1
3: x, testcc, 1
4: x, no, 0
5: x, aabb, 1
由于我的代码可以输出找到匹配项的 行号 并且 列号 已经定义,我想知道解决此问题的最佳方法是什么并相应地更新 .csv 文件?
这是我的代码:
import pandas
findlist = []
linecount=0
with open('lookup.csv', 'r') as f:
column_names = ["TextExclude", "Exclusion", "Filename"]
r = pandas.read_csv(f, names=column_names)
findlist = r.TextExclude.to_list()
with open('datafile.csv', 'r') as f:
# Skip the first line
f.readline()
for line in f:
linecount = linecount +1
if any(listelement in line for listelement in findlist):
print(line)
【问题讨论】: