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

如何将不同长度的列表补全对齐后创建DataFrame

不等长列表补全并创建DataFrame实现方法

你可以通过以下两种方法实现需求:

方法1:手动补全列表后创建DataFrame

如果需要先得到补全对齐后的列表再生成DataFrame,可按如下逻辑实现:

import pandas as pd
import numpy as np

# 汇总所有待处理的列表
all_lists = [
    ['E139', 'E216', 'E248', 'E111', 'E91', 'E245', 'E88'],
    ['E102', 'E139', 'E216', 'E238', 'E186', 'E111', 'E91', 'E88'],
    ['E256', 'E46', 'E232', 'E139', 'E37', 'E216', 'E235', 'E73', 'E91', 'E88'],
    ['E230', 'E31', 'E198', 'E237', 'E233', 'E10', 'E120', 'E46', 'E82', 'E25', 'E164', 'E253', 'E104', 'E54', 'E18']
]

# 计算所有列表的最大长度
max_length = max(len(lst) for lst in all_lists)

# 短列表末尾补NaN,对齐到最大长度
# 如果你需要的是字符串格式的'NaN',把np.nan替换为'NaN'即可
padded_lists = [lst + [np.nan] * (max_length - len(lst)) for lst in all_lists]

# 生成DataFrame
df = pd.DataFrame(padded_lists)

此时打印padded_lists即可得到你预期的补全后列表效果。

方法2:直接用pandas生成DataFrame(无需手动补全)

pandas的DataFrame构造原生支持不等长列表输入,会自动将缺失位置填充为NaN,代码更简便:

import pandas as pd

all_lists = [
    ['E139', 'E216', 'E248', 'E111', 'E91', 'E245', 'E88'],
    ['E102', 'E139', 'E216', 'E238', 'E186', 'E111', 'E91', 'E88'],
    ['E256', 'E46', 'E232', 'E139', 'E37', 'E216', 'E235', 'E73', 'E91', 'E88'],
    ['E230', 'E31', 'E198', 'E237', 'E233', 'E10', 'E120', 'E46', 'E82', 'E25', 'E164', 'E253', 'E104', 'E54', 'E18']
]

df = pd.DataFrame(all_lists)

两种方法得到的最终DataFrame结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:48:04