gpt4 book ai didi

python - python中重复的csv文件的条件过滤

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:47 24 4
gpt4 key购买 nike

我是 python 新手,需要以下方面的一些建议。我有一个包含多个字段的文件,示例如下

# with duplicates
name1 14019 3 0.5564 0.0929 0.6494
name1 14022 0 0.5557 0.0990 0.6547
name1 14016 0 0.5511 0.0984 0.6495
name2 11 8 0.5119 0.0938 0.6057
name2 12 18 0.5331 0.0876 0.6206
name3 16 20 0.5172 0.0875 0.6047
name3 17 29 0.5441 0.0657 0.6098
# without duplicates
name1 14022 0 0.5557 0.0990 0.6547
name2 12 18 0.5331 0.0876 0.6206
name3 17 29 0.5441 0.0657 0.6098

第一个是名称,其他字段是数字(来自预测)。存在具有相同名称但不同预测的重复预测。我的任务是根据最后一个字段的比较删除重复项。应选取最后一列中具有 MAXIMUM 的行。

我正在比较重复条目的最后一个字段的步骤。我应该使用 lambda 还是可以直接过滤?列表的使用是否正确,或者可以在从文件中逐行读取时在流程上执行此操作?

非常感谢您帮助我们!

import csv

fi = open("filein.txt", "rb")
fo = open("fileout.txt", "wb")

reader = csv.reader(fi,delimiter=' ')
writer = csv.writer(fo,delimiter=' ')

names = set()
datum = []
datum2 = []

for row in reader:
if row[0] not in names:
names.add(row[0])
row_new1 = [row[0],row[3],row[4],row[5]]
datum.append(row_new)
writer1.writerow(row_new1)
else:
row_new2 = [row[0],row[3],row[4],row[5]]
datum2.append(row_new2)
writer2.writerow(row_new2)

最佳答案

下面的代码可能有用,我使用字典完成的:

import csv

fi = open("filein.txt", "rb")
reader = csv.reader(fi,delimiter=' ')

dict = {}
for row in reader:
if row[0] in dict:
if float(dict[row[0]][-1]) < float(row[-1]):
dict[row[0]] = row[1:]
else:
dict[row[0]] = row[1:]
print dict

输出:

{'name2': ['12', '18', '0.5331', '0.0876', '0.6206'], 'name3': ['17', '29', '0.5441', '0.0657', '0.6098'], 'name1': ['14022', '0', '0.5557', '0.0990', '0.6547']}

关于python - python中重复的csv文件的条件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17105009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com