Python 使用panda'删除数据集中的重复项;s dataframe.drop_duplicate()
我正在阅读我使用Python的Python 使用panda'删除数据集中的重复项;s dataframe.drop_duplicate(),python,python-2.7,pandas,Python,Python 2.7,Pandas,我正在阅读我使用Python的csv.reader()获取的Twitter数据集。我注意到在这个数据集中,有重复的。我正试图通过使用pandas.drop\u duplicate()函数删除这些,但遇到了一些麻烦 以下是我编写的实现: import csv import re import pandas as pd def process_tweet(tweet): # lowercase all text tweet = tweet.lower() # remov
csv.reader()
获取的Twitter数据集。我注意到在这个数据集中,有重复的。我正试图通过使用pandas.drop\u duplicate()
函数删除这些,但遇到了一些麻烦
以下是我编写的实现:
import csv
import re
import pandas as pd
def process_tweet(tweet):
# lowercase all text
tweet = tweet.lower()
# remove additional whitespaces in tweets
tweet = re.sub('[\s]+', ' ', tweet)
# remove all hashtags
tweet = re.sub(r'#([^\s]+)', "", tweet)
# replace all url links to T_URL
tweet = re.sub('((www\.[\s]+)|(https?://[^\s]+))', 'T_URL', tweet)
# tweet = re.sub(r"http\S+", "T_URL", tweet)
tweet = tweet.split('\n')
remove_duplicates(tweet)
print tweet,
print ',' # added this because I needed each of the list, L1,L2..LN, to end with a comma
return tweet
def remove_duplicates(tweet):
df = pd.DataFrame(tweet)
removed_list = df.drop_duplicates()
# print removed_list;
return removed_list
if __name__ == '__main__':
with open('../../dataset/data.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
process_tweet(row[1])
print '\n End run'
当我在iPython中创建一个包含重复数据(请参见:1,2,3
)和一些唯一数据(请参见:0,4
)的列表时,drop\u duplicate()
似乎工作正常。注意,我已经编辑了一些数据,这些数据被标记为
[27]中的:df5
出[27]:
0
0被spa强制偏离航线。。。
1添加到T_URL
2添加到T_URL
3添加到T_URL
4优胜者T_URL
在[28]:df5.drop_duplicates()中
出[28]:
0
0被spa强制偏离航线。。。
1添加到T_URL
4优胜者T_URL
我不知道这是否有帮助,但我观察到,当我打印我的数据帧df
时,每条tweet都包含在单独的数据帧中。这就是为什么df.drop\u duplicates()
在我的实现中不起作用的原因吗
请原谅我的代码不够令人印象深刻。Python对我来说是新事物,我仍在学习它和科学软件包
感谢您花时间阅读本文并提供任何帮助 我决定采用另一种方法,完全使用数据帧作为我的结构来处理重复项。我决定使用pandas内置的
read\u csv
方法,并将它们放在一个数据帧中,而不必处理Python本机的读取csv和遍历每一行的库。然后,我使用了相同的方法drop\u duplicate()
删除重复数据
我希望这对未来的读者有所帮助
In [27]: df5
Out[27]:
0
0 <removed> <removed> forced off course by spa...
1 <removed> adds <removed> to <removed> T_URL
2 <removed> adds <removed> to <removed> T_URL
3 <removed> adds <removed> to <removed> T_URL
4 <removed> winner T_URL
In [28]: df5.drop_duplicates()
Out[28]:
0
0 <removed> <removed> forced off course by spa...
1 <removed> adds <removed> to <removed> T_URL
4 <removed> winner T_URL