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

将索引为列名、值为列表的Series对象转换为DataFrame

解决方法

针对你的需求,最直接高效的方法是将Series转换为字典后传入pd.DataFrame()构造函数:

import pandas as pd

# 示例Series
s = pd.Series([[100, 200, 300], [400, 500, 600]], index=['A', 'B'])

# 转换为目标DataFrame
df = pd.DataFrame(dict(s))

执行后会直接得到你想要的结构:

AB
100400
200500
300600

为什么之前的方法不符合预期?

  • reset_index() 和 to_frame() 会把Series的索引和列表值拆分为普通列,导致结构扁平化,没法直接生成多行多列的目标格式。
  • transpose() 仅对已有DataFrame做行列转置,但如果先用to_frame()得到的是“列名-列表”的单行结构,转置后依然无法拆分列表为多行。

大数据量场景适配

针对你提到的50-100列、数百万行的场景,上述方法已经足够高效——pd.DataFrame()直接基于原始列表构造,避免了多余的中间转换步骤。如果存在各列表长度不一致的情况,会自动用NaN填充缺失值,兼容非等长场景。

你也可以用等效的from_dict方法,效果完全相同:

df = pd.DataFrame.from_dict(dict(s))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:59:52