我是python的新手,也是stackoverfow的新手。我有一个包含三列(ID,Date_Of_creation,Text)的csv文件。文件中有近25,000个条目。我必须删除重复的推文(文本列),下面的代码可以正常删除重复项:
import csv
csvInputFile = open('inputFile.csv', 'r',encoding="utf-8", newline='')
csvOutputFile = open('outputFile.csv', 'w', encoding="utf-8", newline='')
csvReader = csv.reader(csvInputFile)
csvWriter = csv.writer(csvOutputFile)
cleanData = set()
for row in csvReader:
#print(row[3])
if row[3] in cleanData: continue
cleanData.add(row[3])
csvWriter.writerow(row)
print(cleanData)
csvOutputFile.close()
csvInputFile.close()
此代码正在删除具有相应IDS和创建日期的所有重复项。 作为分析的第二步,我注意到有一些转推在数据集中没有原始推文。我想保留那些转发。 简单来说,我想从Text列中删除所有重复项,无论是推文还是转发。例如:
"他们在现阶段处理这种情况并非易事:......"
" RT @ReutersLobby:他们在现阶段处理这种情况并非易事:......"
正如上面的推文和转推显示" RT @ReutresLobby:"转推是额外的。因此上面的代码不会从最终集中移除此转发。我想删除所有这样的推文,这些推文是另一条推文的副本,因为重点是推文的文本和创建时间而不是其他字段。 我试图搜索它但在论坛上找不到任何相关内容。我希望有人能帮我解决这个问题。
答案 0 :(得分:0)
我认为这是一个非常快速的解决方法:
⊥
我添加的条件显示,当剥离转发前缀时,推文已经存在于已清理的集合中。