【发布时间】:2026-01-07 15:15:01
【问题描述】:
我以以下方式获得了一个包含 120000 行的 csv:
ID Duplicate
1 65
2 67
4 12
4 53
4 101
12 4
12 53
101 ...
这个列表基本上指定了一些用户 ID,以及与该用户重复的用户。现在列表是如何组成的,我无法在 Excel 中真正过滤掉它,因此我试图用这个结果来转换列表:
[1, 65]
[2, 67]
[4, 12, 53, 101]
之后,我将能够写入一个新的 csv,仅删除每个元素的 list[0],这样我就可以为每个“重复用户块”保留一个用户。然后在 Excel 中删除所有剩余的用户 ID。
但是到了这一点我遇到了一些问题:
import csv
with open("contacts.csv", "rt") as f:
reader = csv.reader(f, delimiter="\t")
contacts = []
for row in reader:
if row[0] not in contacts:
contacts.append(row[0])
if row[1] not in contacts:
position = contacts.index(row[0])
contacts[position].append(row[1])
当然,我收到错误“AttributeError: 'str' object has no attribute 'append'”,因为 contacts[position] 是一个字符串。但是如何更改代码,以便获得每个重复联系人块的列表?
谢谢!
【问题讨论】:
-
为什么 101 在输出中没有跟随 53 ??
-
第一列排序了吗?
-
你是对的,编辑它。是的,第一列已排序