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

如何将list of lists转换为指定结构的DataFrame?

将嵌套列表格式的Series转换为指定结构的DataFrame

完全可行,以下是具体实现步骤和代码:

前提说明

假设你已准备好与展开后数据行数匹配的date对象序列(若未准备,可按样本数量生成连续日期)。原Series中每个元素是包含约80个数值的子列表组成的二维列表(即每个ID对应多行样本,每行样本含80个特征)。

实现步骤与代码

  1. 模拟原数据(可替换为你的实际数据)
import pandas as pd
import numpy as np

# 构造499个元素的Series,每个元素含3个样本,每个样本80个特征(示例用3个特征简化)
data = [np.random.randn(3, 80).tolist() for _ in range(499)]
s = pd.Series(data, dtype='object')
  1. 准备日期序列
# 假设每个ID对应3个样本,生成总长度为499*3的连续日期
start_date = "2020-01-01"
dates = pd.date_range(start_date, periods=len(s)*3)
  1. 转换为目标DataFrame
# 展开嵌套列表,将每个子列表转为列
df = s.explode().apply(pd.Series)

# 重命名特征列为col1至col80
df.columns = [f"col{idx+1}" for idx in df.columns]

# 添加ID列(对应原Series的索引)
df["ID"] = df.index

# 设置日期为行索引
df.index = dates

# 调整列顺序,将ID列前置
df = df[["ID"] + [col for col in df.columns if col != "ID"]]

关键操作说明

  • s.explode():将原Series每个元素中的列表展开为多行,原索引会重复对应每个子样本。
  • .apply(pd.Series):将每个子样本的列表拆分为单独的特征列。
  • 日期序列长度必须与展开后DataFrame的行数一致,若各ID对应的样本数不同,需先统计总样本数再生成对应长度的日期序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:10:31