首页 > 解决方案 > 使用startswith检查数据框中的列

问题描述

我有一个推文数据框。我想检查一个文本是否是转推。首先,我编写了一个函数来检查推文是否是转发:

def isRetweet(tweet):
  check_RT = tweet.startswith("RT ")
  if check_RT ==True:
    return check_RT
  else:
    return check_RT

然后我检查列中是否有任何行包含转推。

text = tweets['tweet_text']
check_retweet = isRetweet(text) 
print(check_retweet)

它返回此错误'Series' object has no attribute 'startswith'

无论如何将我的功能应用于列中的单个行/文本?还是我的功能有什么问题?

标签: pythonpandasdataframenlp

解决方案


您应该使用straccessor,并且您也不需要该功能:

tweets['is_retweet'] = tweets['tweet_text'].str.startswith('RT')

如果您坚持拥有一个功能,您应该使用apply

tweets['is_retweet'] = tweets['tweet_text'].apply(lambda tweet: tweet.startswith('RT'))

这两个示例都将创建一个新的布尔列。


推荐阅读