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

Python:如何从多个列表变量生成指定结构的Pandas DataFrame

解决方案

你的问题出在eu_5dstats和gu_5dstats的结构上——你给它们套了额外一层列表([stats_list(...)]),导致数据嵌套层级不对,pandas无法正确解析成两行7列的结构。

具体修复方法

方法1:直接解开外层嵌套列表

如果保持原变量定义不变,构造DataFrame时取列表的第一个元素(也就是stats_list返回的7元素列表):

import pandas as pd

columns = ['ticker', 'avg range', 'std of range', '0.5 std range', 'median range', 'highest range', 'lowest range']
eu_5dstats = [stats_list("EUR_USD","D",5)]
gu_5dstats = [stats_list("GBP_USD","D",5)]

# 取每个变量的第一个元素(即实际的7元素统计列表)
table = pd.DataFrame([eu_5dstats[0], gu_5dstats[0]], columns=columns)

方法2:定义变量时去掉外层列表(更简洁)

直接把stats_list的返回值赋值给变量,不需要额外套一层[]:

import pandas as pd

columns = ['ticker', 'avg range', 'std of range', '0.5 std range', 'median range', 'highest range', 'lowest range']
# 去掉外层[],直接接收stats_list返回的7元素列表
eu_5dstats = stats_list("EUR_USD","D",5)
gu_5dstats = stats_list("GBP_USD","D",5)

# 直接用两个列表构造两行数据
table = pd.DataFrame([eu_5dstats, gu_5dstats], columns=columns)

为什么之前的尝试失败?

  • 用pd.DataFrame([eu_5dstats, gu_5dstats], columns=[columns])时,传入的数据是[[[7元素]], [[7元素]]],三层嵌套导致pandas把每个内层列表当成单独一列,输出结构异常。
  • 用zip(eu_5dstats, gu_5dstats)时,得到的是包含2组配对数据的结构(只有2列),和你定义的7个列名不匹配,因此抛出ValueError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:15:36