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

pandas dataframe新增列时从trainingInput提取serviceAccount值异常求助

问题原因
  • 循环赋值逻辑错误:你在遍历每行trainingInput的循环体内,每次都对整个df['serviceaccount']列赋值,导致整列最终只会保留最后一次循环得到的serviceAccount值,看起来就像随机结果
  • 异常处理位置错误:try-except放在循环内部,且触发KeyError时直接给整列赋值为None,没有处理单条数据缺失字段的场景
  • 冗余操作:如果trainingInput列本身就是Python字典类型,不需要做json.dumps再json.loads的多余转换
  • 注释的merge写法维度不匹配:你把二维的df5.values重复多倍构造新DataFrame,维度和原df对不上,直接触发维度错误
解决方法

直接用pandas的str.get方法即可一行实现需求,还能自动处理不存在key的场景,默认返回NaN,你也可以自定义填充值:

# 直接提取,不存在key的行返回NaN
df['serviceAccount'] = df['trainingInput'].str.get('serviceAccount')

# 如果要把缺失值替换为'None',用下面的写法
df['serviceAccount'] = df['trainingInput'].str.get('serviceAccount').fillna('None')

如果你需要同时提取多个字段(比如你注释里的region),可以用apply结合字典推导:

def extract_train_info(x):
    return pd.Series({
        'serviceAccount': x.get('serviceAccount', 'None'),
        'region': x.get('region', 'None')
    })

df[['serviceAccount', 'region']] = df['trainingInput'].apply(extract_train_info)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:36:03