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

如何将不同长度的列表作为行添加到pandas DataFrame中

报错原因

你代码中生成的pd.DataFrame(l1, columns=list(range(len(l1))))是3行1列的结构:列表的每个元素单独作为行存在,而df.loc[len(df)]是要往表中插入1行数据,二者形状不匹配,因此抛出ValueError。

解决方案

方案1:批量生成(推荐,适合大量列表场景)

先把所有待合并的列表汇总为一个嵌套列表,一次性生成DataFrame,自动适配最长列表的长度生成数字列名,短列表缺失位置自动填充NaN:

import pandas as pd

all_lists = [
    [1,2,3],
    [10,22,13,4],
    [2]
]
# 动态生成列名,列数等于最长列表的长度
max_length = max(len(i) for i in all_lists)
col_names = list(range(max_length))

df = pd.DataFrame(all_lists, columns=col_names)

生成的df结构如下:

0123
123NaN
1022134
2NaNNaNNaN

方案2:逐行添加(适合流式获取列表的场景)

如果无法提前收集全所有列表,需要逐行插入,用concat实现自动列扩展:

import pandas as pd

df = pd.DataFrame()
# 示例逐个传入列表
for lst in [[1,2,3], [10,22,13,4], [2]]:
    row = pd.Series(lst, index=range(len(lst)))
    df = pd.concat([df, row.to_frame().T], ignore_index=True)

# 统一转换列名为整数类型
df.columns = df.columns.astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:45:04