gpt4 book ai didi

python - Pandas 从 str.extractall ('#' 给出错误)

转载 作者:太空狗 更新时间:2023-10-30 01:46:11 24 4
gpt4 key购买 nike

我正在尝试从推文文本中过滤所有 # 关键字。我正在使用 str.extractall() 提取所有带有 # 关键字的关键字。这是我第一次使用 pandas 从 tweetText 中过滤关键字。下面给出了输入、代码、预期输出和错误。

输入:

userID,tweetText 
01, home #sweet home
01, #happy #life
02, #world peace
03, #all are one
04, world tour

等等...总数据文件是 GB 大小的抓取推文和其他几列。但我只对两列感兴趣。

代码:

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 <module>
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

在此先感谢您的帮助。根据 userid 过滤关键字的最简单方法应该是什么?

输出更新:

仅使用它时输出如上s.name = "tweetText"
data_1 = data[~data['tweetText'].isnull()]

在这种情况下,输出为空 [] 并且 userID 仍然在列表中,对于那些有关键字的用户,有一个关键字数组,而不是列表形式。

当只使用它时输出我们需要的但使用 NAN

s.name = "tweetText"
data_2 = data_1.drop('tweetText', axis=1).join(s)

这里的输出是正确的格式,但是那些没有关键字的还没有考虑并且有NAN

如果有可能,我们必须忽略此类用户 ID,并且根本不在输出中显示。在下一阶段,我将尝试计算关键字的频率,其中 NAN 或空 [ ] 也将被计算在内,并且该频率可能会影响 future 的分类。

enter image description here

最佳答案

在你的微积分中设置大括号:

fout = data['tweetText'].str.extractall('(#)')

代替

fout = data['tweetText'].str.extractall('#')

希望能奏效

关于python - Pandas 从 str.extractall ('#' 给出错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38552688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com