gpt4 book ai didi

Python:删除重复的 CSV 条目

转载 作者:太空狗 更新时间:2023-10-30 00:51:54 24 4
gpt4 key购买 nike

我有一个包含多个条目的 CSV 文件。示例 csv:

user, phone, email
joe, 123, joe@x.com
mary, 456, mary@x.com
ed, 123, ed@x.com

我正在尝试删除 CSV 中特定列的重复项,但是使用下面的代码我得到了“列表索引超出范围”。我想通过将 row[1]newrows[1] 进行比较,我会找到所有重复项,并且只重写 file2.csv 中的唯一条目。但这不起作用,我不明白为什么。

f1 = csv.reader(open('file1.csv', 'rb'))
newrows = []
for row in f1:
if row[1] not in newrows[1]:
newrows.append(row)
writer = csv.writer(open("file2.csv", "wb"))
writer.writerows(newrows)

我的最终结果是有一个维护文件序列的列表(set 不会工作......对吧?)它应该如下所示:

user, phone, email
joe, 123, joe@x.com
mary, 456, mary@x.com

最佳答案

row[1] 指的是当前行(电话)中的第二列。一切都很好。

但是,您newrows.append(row) 将整行添加到列表中。

当您检查 row[1] in newrows 时,您是在对照完整行的列表检查单个电话号码。但这不是您想要做的。您需要检查一个列表或一组电话号码。为此,您可能想要跟踪行和一组观察到的电话号码。

类似于:

f1 = csv.reader(open('file1.csv', 'rb'))
writer = csv.writer(open("file2.csv", "wb"))
phone_numbers = set()
for row in f1:
if row[1] not in phone_numbers:
writer.writerow(row)
phone_numbers.add( row[1] )

关于Python:删除重复的 CSV 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7682796/

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