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

Pandas将每行指定两列值转为字典存入新列 解决ValueError报错

报错原因

你写的赋值逻辑右侧是只有2个键值对的普通Python字典,pandas会把这个字典当成长度为2的一维序列去匹配DataFrame的89行索引,两边长度不匹配,所以抛出你看到的ValueError。

实现方案

根据你的数据规模选下面任意一种方法即可:

  • 小数据集写法:逐行生成字典
    用apply指定按行遍历,每一行单独组装对应字典,写法简单直观:
    # 若需要和示例一样funz_id为字符串格式,先跑这行做类型转换
    # df['funz_id'] = df['funz_id'].astype(str)
    df['funz_dict'] = df.apply(lambda x: {'funz_id': x['funz_id'], 'funz_desc': x['funz_desc']}, axis=1)
    
  • 大数据集写法:批量生成字典(性能更好)
    直接取需要的两列,调用pandas内置的to_dict方法批量生成每行的字典列表,执行效率比逐行apply高很多:
    # 若需要和示例一样funz_id为字符串格式,先跑这行做类型转换
    # df['funz_id'] = df['funz_id'].astype(str)
    df['funz_dict'] = df[['funz_id', 'funz_desc']].to_dict('records')
    

执行完之后就能得到你给出的示例效果,每行的funz_dict列存储对应行两个字段组成的字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:54:23