You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何迭代调用自定义函数为Pandas DataFrame新列填充值

解决步骤

第一步 修改情感分析函数,增加返回值

原函数仅打印结果无返回值,只需把最后一行的打印逻辑替换为返回逻辑即可:

def sample_analyze_sentiment(text_content):
    """
    分析字符串的情感得分
    Args:
      text_content: 待分析的文本内容
    Returns:
      文本的整体情感得分,范围-1(负面)到1(正面)
    """
    client = language_v1.LanguageServiceClient()
    type_ = language_v1.Document.Type.PLAIN_TEXT
    language = "en"
    document = {"content": text_content, "type_": type_, "language": language}
    encoding_type = language_v1.EncodingType.UTF8
    response = client.analyze_sentiment(request = {'document': document, 'encoding_type': encoding_type})
    # 替换原打印逻辑为返回得分
    return response.document_sentiment.score

第二步 写入DataFrame新列,两种实现可选

方案1:适配你现有循环逻辑修改

import pandas as pd

df = pd.read_csv('Final.csv')
# 初始化存储情感得分的新列
df['sentiment_score'] = None
# 遍历索引和对应文本,逐行写入结果
for idx, text in enumerate(df['Text']):
    df.loc[idx, 'sentiment_score'] = sample_analyze_sentiment(text)

方案2:更简洁的pandas apply实现

import pandas as pd

df = pd.read_csv('Final.csv')
# 直接对Text列应用分析函数,结果直接赋值给新列
df['sentiment_score'] = df['Text'].apply(sample_analyze_sentiment)

注意:如果你的数据量较大,建议先做空值过滤,避免sample_analyze_sentiment调用时传入空文本触发API报错,同时可优先使用Google Natural Language的批量分析接口减少请求开销,避免触发频率限制。

内容的提问来源于stack exchange,提问作者duy quan duc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:12:02