我有一本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 循环是否有效,至少我想不出它可以工作的方法。有人可以帮忙吗?
.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
的任何内容都适用于此处。