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

如何通过data参数传入列表创建多列pandas DataFrame?

解决方案

你遇到的报错是因为pandas解析嵌套列表格式的data参数时,默认将每个子列表识别为一行数据,你的原始data是按列存储的结构,直接传入会出现行列维度不匹配的问题,两种常用的原生实现方式如下:

  • 方法1:用zip(*data)转置列表结构
    zip(*data)可以直接将按列存储的嵌套列表转换为pandas默认的行存储结构,无需后续转置操作,示例代码:
import pandas as pd

# 按列存储的原始数据:第一个子列表是col1的值,第二个是col2的值
data = [['a', 'b', 'c'], ['d', 'e', 'f']]
df = pd.DataFrame(
    data=zip(*data),
    index=list('ABC'),
    columns=['col1', 'col2']
)
  • 方法2:用numpy数组转置
    如果你的数据已经用numpy存储,直接调用数组的.T属性转置后传入即可:
import pandas as pd
import numpy as np

data = [['a', 'b', 'c'], ['d', 'e', 'f']]
df = pd.DataFrame(
    data=np.array(data).T,
    index=list('ABC'),
    columns=['col1', 'col2']
)

以上两种方式构造出的DataFrame完全符合需求,shape为(3,2),列数据与你传入的子列表一一对应。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:24:04