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

嵌套列表生成DataFrame时最后元素值挤入首单元格其余为NAN求助

嵌套列表转DataFrame时最后一行值挤在首个单元格的问题排查与解决

问题描述

使用df = pd.DataFrame(lst)将嵌套列表转换为DataFrame时,发现最后一个子列表的所有内容都被压缩在该行第一个单元格中,其余单元格均显示NaN,此前同类操作未出现该问题。生成的DataFrame样式如下:

前几行:多列均有对应数据
最后一行:仅第一个单元格包含列表内容,剩余列全为NaN

原因分析

本质是最后一个子列表的结构与其他子列表不匹配,常见两种触发场景:

  • 最后一个元素是嵌套更深的列表:比如其他子列表都是一维结构(如[1,2,3]),但最后一个是二维列表(如[[4,5,6]]),Pandas会将这个二维列表视为单个元素,因此仅填充首个单元格。
  • 最后一个子列表长度异常:若前面子列表长度统一为N,而最后一个子列表长度为1,且该元素本身是列表,也会导致Pandas将其识别为单个单元格内容。

解决办法

针对不同场景调整嵌套列表即可:

  1. 解包过深嵌套:如果最后一个子列表是二维结构,直接去除外层括号,转为和其他子列表一致的一维列表。
    错误示例代码:
    lst = [
        [1, 2, 3],
        [4, 5, 6],
        [[7, 8, 9]]
    ]
    df = pd.DataFrame(lst)
    
    修正后代码:
    lst = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    df = pd.DataFrame(lst)
    
  2. 统一子列表长度:若最后一个子列表长度确实与其他行不同,可通过补全缺失值(如用None填充)或使用pd.DataFrame.from_records(lst)来自动对齐列结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:39:57