为datafram的每一行应用textblob-in

2024-04-19 18:35:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框和一个列,其中有文本。我想应用textblob并计算每行的情绪值。

text                sentiment

这太棒了
伟大的电影 伟大的故事

当我执行以下代码时:

df['sentiment'] = list(map(lambda tweet: TextBlob(tweet), df['text']))

我知道错误:

TypeError: The `text` argument passed to `__init__(text)` must be a string, not <class 'float'>

如何将textBLob应用于数据帧中列的每一行以获取情感值?


Tags: 数据lambda代码text文本mapdf电影
1条回答
网友
1楼 · 发布于 2024-04-19 18:35:50

您可以使用.apply

df['sentiment'] = df['text'].apply(lambda tweet: TextBlob(tweet).sentiment)

情感返回形式情感(极性,主观性)的命名倍数。

但是您确定每一行df['text']都是字符串格式的吗?如果不是,则可以尝试在下面返回None,如果文本无法由TextBlob处理:

def sentiment_calc(text):
    try:
        return TextBlob(text).sentiment
    except:
        return None

df['sentiment'] = df['text'].apply(sentiment_calc)

相关问题 更多 >