有没有办法在Python的另一个循环中进行这种列表理解?

问题描述 投票:0回答:1

我有一本Python字典,基本上是这样的:

forecast = {"Name 1" : {list 1:\[ 0, 1, 2, 3\], list 2 : \[ 4, 5, 6, 7\]...}, "Name 2": {"list 1":\[\] , 'list 2': \[\] ...} }.

这是来自“名称 1”、“名称 2”等概率分布列表中的一堆采样数据。

如果我运行 pd.DataFrame(forecast['Name 1']).values[2] 之类的东西,我想用它来预测某种模拟中的不同场景,使用我已经构建的一些机器学习模型,里面的数据已经是我需要的格式,但是因为我想执行几个预测,所以我尝试了类似的方法:

for i in list:
        a = pd.DataFrame(forecast[i[0]]).values[j for j in len(forecast[i[0]])]
        b = pd.DataFrame(forecast[i[1]]).values[j for j in len(forecast[i[0]])]

but it gives the following error: 

  File "/tmp/ipykernel_4823/3184712350.py", line 5
    a = pd.DataFrame(forecast[i[0]]).values[j for j in len(forecast[i[0]])]
                                              ^
SyntaxError: invalid syntax

如何访问数据以用于我的模型?我不知道另一个 for 循环是否有效,至少我想不出它可以工作的方法。有人可以帮忙吗?

python pandas list-comprehension
1个回答
0
投票

.values
DataFrame
numpy
array
。迭代列并不是通过索引完成的,您只需转置整个数组并迭代转置:

a = pd.DataFrame(forecast[i[0]]).values.T  # .T gets the transpose
for col in a:
    print(col)  # Displays a single column at a time

链接问题上显示了其他更复杂的方法,但实际上,您需要知道的是

.values
是多维
numpy.array
,因此适用于
numpy.array
的任何内容都适用于此处。

© www.soinside.com 2019 - 2024. All rights reserved.