Python str.x27;str';对象没有属性';包含';
我正在分析推特 我有10k条推文,对出现的单词列表感兴趣:Python str.x27;str';对象没有属性';包含';,python,pandas,Python,Pandas,我正在分析推特 我有10k条推文,对出现的单词列表感兴趣: lst1=['spot','mistake'] lst1_tweets=tweets[tweets['tweet_text'].str.contains('|'.join(lst1))].reset_index() 我想再次检查并确认: f=lst1_tweets['tweet_text'][0] f='Spot the spelling mistake Welsh and Walsh. You are showing picture
lst1=['spot','mistake']
lst1_tweets=tweets[tweets['tweet_text'].str.contains('|'.join(lst1))].reset_index()
我想再次检查并确认:
f=lst1_tweets['tweet_text'][0]
f='Spot the spelling mistake Welsh and Walsh. You are showing picture of presenter Bradley Walsh who is alive and kick'
type(f)
<class 'str'>
返回:
AttributeError: 'str' object has no attribute 'str'
AttributeError: 'str' object has no attribute 'contains'
也
返回:
AttributeError: 'str' object has no attribute 'str'
AttributeError: 'str' object has no attribute 'contains'
任何关于如何在字符串中搜索单词列表的建议,如果只是检查字符串中的某些字符串,则不太确定,但我非常确定。contains不是python的东西, 试试这个:
for "string" in f:
# do whatever
您可能会混淆pandas中的
.str.contains()
,它存在并应用于系列。在这种情况下,您可以在或运算符中使用。
以下是如何解决这个问题的完整指南
从熊猫文档:
str.contains(self、pat、case=True、flags=0、na=nan、regex=True)。
测试模式或正则表达式是否包含在序列或索引的字符串中
我想您正在
中查找:
if 'goat' in 'goat cheese':
print('beeeeeeh!')
您只能在熊猫系列上使用.str.contains()
,而不能在提取单个字符串后使用。这是否回答了您的问题?这里您的f
引用了一个Python字符串,其类名为str
:类型(f)是str
pandas.Series.str
是一个具有不同属性的不同类,包括contains
。您可以使用内置的可调用的hasattr
检查一个类是否具有某个名称的属性(也就是说,不引发异常)。他不想循环某个对象,他想测试子字符串。此外,for循环是在每次迭代中将一个对象从iterable分配给一个变量。不能将对象指定给字符串。这可能是一个if语句。这可能是一个问题,因为他正在搜索的字符串列表包含'spot'
和'error'
,但他正在搜索的字符串包含'spot'
和'error'
。大写和小写字符的编码不同,因此Python字符串中的运算符区分大小写,并且与pandas.Series.str.contains
不同,不能使搜索不区分大小写。我不太清楚这一点,但|
似乎是一个正则字符pandas.Series.str.contains
可能使用与Python模块re
搜索字符串相同的语法。如果“goat cheese”中的“goat”。lower():
就可以了。查找pandas文档,pandas.Series.str.contains
实际上使用了re
模块.lower()
也可以工作,但是re
模块可能更为熟悉。这正是发生在我身上的事情!