我堆叠到以下任务:合并特定掩码下的所有文件并根据两个标准删除重复项:如果name
和TEXT
相同,则保留具有最大第 4 列的文件。
我目前有这个没有经过良好测试的代码(基于我之前的问题),但是因为它使用字典,它重写了以前具有相同名称但不同文本的数据。我试图只使用列表。
如何同时在两个条件下进行过滤?
非常感谢您的帮助。
import glob,csv
files = glob.glob("*.txt")
fo = open("combined.csv","a")
writer = csv.writer(fo,delimiter=' ')
datum = []
nyt = set()
for f in files:
with open(f) as fi:
for row in csv.reader(fi,delimiter=' '):
crow = row[0],row[4]
nyt.add(crow)
if crow in nyt:
dupl = [element for element in datum if element[0] == row[0]]
if dupl[0][3] < row[3]:
# replace row in datum with row
if dupl[0][3] > row[3]:
continue
else:
datum.append(row)
例子
file1
name1 0.06 0.91 0.17 TEXT1 smthing smthing
name2 0.46 0.42 0.02 TEXT1 smthing smthing
name3 0.15 0.80 0.61 TEXT1 smthing smthing
file2
name1 0.68 0.38 0.61 TEXT2 smthing smthing
name2 0.73 0.62 0.03 TEXT2 smthing smthing
name3 0.84 0.81 0.60 TEXT2 smthing smthing
file3
name1 0.86 0.18 0.03 TEXT1 smthing smthing
name2 0.04 0.12 0.75 TEXT1 smthing smthing
name3 0.59 0.70 0.71 TEXT1 smthing smthing