当前位置 主页 > 关于我们 > 站长日志 >

    Extractall,Pandas从str.extractall('#')中给出错误

    栏目:站长日志 时间:2021-03-29 11:44

         我正试图过滤tweet文本中的所有#关键字。我使用str.extractall()来提取所有带有#关键字的关键字。
         这是我第一次使用pandas从tweetText中过滤关键字。输入、代码、预期输出和错误如下所示。
         输入:userID,tweetText
         01, home #sweet home
         01, #happy #life
         02, #world peace
         03, #all are one
          04, world tour
         等等。。。总的数据文件是用GB大小的scraped tweets和其他几列组成的。但我只对两个专栏感兴趣。
         代码:import re
         import pandas as pd
         data = pd.read_csv('Text.csv', index_col=0, header=None, names=['userID', 'tweetText'])
         fout = data['tweetText'].str.extractall('#')
         print fout
         预期产量:userID,tweetText
         01,#sweet
         01,#happy
         01,#life
         02,#world
         03,#all
         错误:Traceback (most recent call last):
         File "keyword_split.py", line 7, in
         fout = data['tweetText'].str.extractall('#')
         File "/usr/local/lib/python2.7/dist-packages/pandas/core/strings.py", line 1621, in extractall
         return str_extractall(self._orig, pat, flags=flags)
         File "/usr/local/lib/python2.7/dist-packages/pandas/core/strings.py", line 694, in str_extractall
         raise ValueError("pattern contains no capture groups")
         ValueError: pattern contains no capture groups
         提前谢谢你的帮助。根据用户id筛选关键字的最简单方法应该是什么?
         输出更新:
         当仅使用此选项时,输出如下
         s.name = "tweetText"
         data_1 = data[~data['tweetText'].isnull()]
         本例中的输出是空的[],用户id仍在列表中,对于那些具有关键字的用户,有一个关键字数组而不是列表形式。
         当仅使用此选项时,输出我们所需的内容,但使用NANs.name = "tweetText"
         data_2 = data_1.drop('tweetText', axis=1).join(s)
         这里的输出是正确的格式,但是那些没有关键字的输出还没有考虑并且没有。
         如果有可能的话,我们可以忽略这些用户ID,完全不显示在输出中。在接下来的阶段中,我试图计算关键字的频率,其中NAN或空的[]也将被计算在内,并且该频率可能会损害将来的分类。

         原文链接:https://blog.csdn.net/weixin_39861669/article/details/111453221