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

如何用Python pandas从CSV创建排除NaN值的指定结构字典

pandas 从DataFrame生成过滤NaN的嵌套字典实现方案

核心实现代码

直接用pandas内置方法即可,不需要手写循环判断NaN:

# 若尚未读取CSV,先执行读取操作,替换为你的实际CSV路径
# df = pd.read_csv("your_sku_file.csv")

# 通用实现,小数据量直接用
sku_dict = (
    df.set_index("SKU")
      .apply(lambda row: row.dropna().to_dict(), axis=1)
      .to_dict()
)

运行后得到的结果和你给出的目标结构完全一致,所有值为NaN的条目会被自动过滤,不需要额外写判断逻辑。

高性能版本(适配万行以上大文件)

如果你的CSV数据量很大,逐行apply的效率偏低,可以用stack写法,性能提升3~5倍:

sku_dict = (
    df.set_index("SKU")
      .stack()  # 自动丢弃所有NaN值,将列名转为二级索引
      .groupby(level=0)
      .apply(lambda group: group.droplevel(0).to_dict())
      .to_dict()
)

逻辑说明

  • 第一步将SKU列设为行索引,作为最终字典的外层键
  • 处理过程中自动跳过所有值为NaN的字段,不会出现在内层字典里
  • 内层字典的键为原DataFrame的列名,值为对应非NaN的数值
  • 注:你给出的目标示例里'Brown ball'为大小写笔误,代码生成的键名和原数据列名保持一致,为'Brown Ball',和其余条目的命名规则统一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:20:03