【发布时间】:2022-01-18 13:34:53
【问题描述】:
所以我有一个要导入的 csv 文件,并希望根据第一列中的用户编号跳过从 csv 文件中导入重复行和原始行,并且我正在使用 StringIO 模块。我目前这样做的方式低于这是不正确的,因为即使它跳过了重复的行,它仍然会导入我相信的原始行。跳过从 csv 导入重复行和原始行的最佳方法是什么?
def csv_import(stream):
ostream = StringIO()
headers = stream.readline()
ostream.write(headers)
seen_user_numbers = {}
for row in stream:
list_row = row.split(',')
user_number = list_row[0]
if user_number in seen_user_numbers:
seen_user_numbers.pop(user_number)
continue
seen_user_numbers[user_number] = True
ostream.write(row)
ostream.seek(0)
return ostream
【问题讨论】:
-
那么,任何提到两次的用户都应该被完全过滤掉吗?顺便说一句:您谈论重复行但只比较第一列有点令人困惑。
-
我想根据第一列中的值跳过重复的+原始的。如果第一列包含重复值,那么我想跳过导入重复 + 原始