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

如何将列表设为DataFrame表头,嵌套列表对应追加为列数据

如何将两个列表转换为指定格式的Pandas DataFrame?

现有两个列表:

List1 = ['a', 'b', 'c', 'd']
List2 = [['21'], ['23','56','78','67'], ['12','13','14'], ['21','56','78','68']]

需要将List1作为DataFrame的表头,把List2中各子列表对应追加到List1的列中,生成如下格式的DataFrame:

a    b   c   d
0   21  23  12  21
1       56  13  56
2       78  14  78
3       67      68

实现方法

核心思路是先把每个子列表补全到相同长度(以最长子列表的长度为准),缺失位置用空值填充,再转换为DataFrame。

代码实现

import pandas as pd

List1 = ['a', 'b', 'c', 'd']
List2 = [['21'], ['23','56','78','67'], ['12','13','14'], ['21','56','78','68']]

# 找到最长子列表的长度
max_len = max(len(lst) for lst in List2)
# 把每个子列表补全到max_len长度,缺失位置填充空字符串
padded_lists = [lst + ['']*(max_len - len(lst)) for lst in List2]
# 转换为DataFrame后转置,再设置列名
df = pd.DataFrame(padded_lists).T
df.columns = List1

print(df)

说明

  1. 先计算List2中最长子列表的长度(这里是4);
  2. 遍历List2的每个子列表,用空字符串填充至最长长度,确保所有子列表长度一致;
  3. 先将补全后的列表转为DataFrame,此时每一行对应原列表的子列表元素,通过转置(.T)让每个子列表对应一列;
  4. 最后设置DataFrame的列名为List1,即可得到目标格式的结果。

如果希望缺失位置显示为NaN而非空字符串,只需把填充的''替换成pd.NA。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:22:51