如何使用python从csv文件中的tweets列表中删除部分重复项

如何使用python从csv文件中的tweets列表中删除部分重复项,python,csv,twitter,Python,Csv,Twitter,我是python新手,我正在进行情绪分析,但不知何故,我不得不删除重复的推文。问题是,我想删除每个以相同的前5个单词开头的tweet,使用如下函数: f1 = csv.reader(open(r'C:\pp.csv', 'rb')) writer = csv.writer(open(r'C:\oo.csv', 'wb')) tweet = set() for row in f1: if row[1] not in tweet: writer.writerow(row)

我是python新手,我正在进行情绪分析,但不知何故,我不得不删除重复的推文。问题是,我想删除每个以相同的前5个单词开头的tweet,使用如下函数:

f1 = csv.reader(open(r'C:\pp.csv', 'rb'))
writer = csv.writer(open(r'C:\oo.csv', 'wb'))
tweet = set()
for row in f1:
    if row[1] not in tweet:
        writer.writerow(row)
        tweet.add( row[1] )
        f1.close()
        writer.close()

这就是我要做的设置:

f1 = csv.reader(open(r'C:\pp.csv', 'rb'))
writer = csv.writer(open(r'C:\oo.csv', 'wb'))
tweet = set()
index = 5
for row in f1:
    if row[1][:index] not in tweet:
        writer.writerow(row)
        tweet.add( row[1][:index] )
f1.close()
writer.close()
基本上,索引是告诉您的代码只在字符串的开头读取5个字符,然后它只存储足够多的字符,以便稍后检查。您可以将其设置为您想要的任何数字,因此如果您想要检查40个字符,只需调整索引即可


不会出现索引错误,因为太短的字符串只会读取整个字符串。

这里有一种可能性:

f1 = csv.reader(open(r'C:\pp.csv', 'rb'))
writer = csv.writer(open(r'C:\oo.csv', 'wb'))

tweet = set()
tweet_start = set()
for row in f1:
    the_tweet = row[1]
    start = ' '.join(the_tweet.split(' ')[:5])
    if start not in tweet_start:
        writer.writerow(row)
        tweet.add(the_tweet)
        tweet_start.add(start)
f1.close()
writer.close()

首先,不要在for循环中关闭f1和writer。让它们保持打开状态,直到完成所有迭代。第二,你得到的实际结果是什么?它与你想要的有什么不同?推特是按排序的还是按随机顺序排列的?整个文件可以保存在内存中吗?问题是如何使用正则表达式删除两条开始相同的推文的重复内容,如这两条推文:@tesco的dave lewis表现强硬,面对63.8亿英镑的损失:你不能。。。@tesco's dave lewis的URL营销表现强硬,并直面63.8亿英镑亏损的现实:你不能做出。。。URL digitalTesco宣布创纪录地亏损64亿英镑,因此yueki89wks,s;乐购宣布创纪录的亏损64亿英镑,所以JJJJUOPYTTT这些都是重复的例子