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

Pandas拆分Google情感分析结果为独立列 空值填充None实现方案

解决方案

直接替换原有拆分逻辑即可,核心是提前做空值兜底,强制固定拆分后的列数为4,空值位置自动填充None,从根源避免列数不固定导致的合并报错。

import pandas as pd

# 单条情感结果拆分逻辑
def parse_sentiment(val):
    # 空值/空白值直接返回4个None,保证返回值长度固定
    if pd.isna(val) or str(val).strip() == "":
        return [None, None, None, None]
    # 有效值按任意空白(空格、换行符)拆分,刚好得到4个元素
    return str(val).split()

# 执行拆分,固定输出4列
sentiment_split = df01["sentiment"].apply(parse_sentiment).apply(pd.Series)
# 可选:给拆分后的列命名,方便后续识别
sentiment_split.columns = ["mag_field", "magnitude", "score_field", "score"]
# 可选:把数值列转成浮点类型,方便后续计算
sentiment_split[["magnitude", "score"]] = sentiment_split[["magnitude", "score"]].astype(float)

# 和原始DataFrame按行索引合并,不会再出现列数不匹配报错
df_merged = pd.concat([df01, sentiment_split], axis=1)

逻辑说明

  • 自定义拆分函数对空值做了前置判断:只要sentiment列的单元格是NaN、空字符串、全空白内容,直接返回长度为4的None列表,不会出现拆分后长度不足的问题
  • 有效值的拆分逻辑和你之前用的str.split()完全一致,默认按所有空白字符(空格、换行符)切割,刚好匹配Google接口返回的键: 值\n键: 值格式,拆分结果和你之前的有效行输出完全对齐
  • 不管原始数据里有没有有效情感分析结果,拆分后都会稳定生成4列,直接和原表拼接即可,不需要额外做列补全操作

效果验证

即使所有行的sentiment字段全为空,拆分结果也会是4列全None的固定结构,满足后续合并要求;存在有效值的行拆分结果和你之前的输出完全一致,不会影响已有逻辑。

内容的提问来源于stack exchange,提问作者dsx

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:39:34