使用 python 字典时无法解压不可迭代的 int 对象

Cal*_*n26 5 python dictionary loops boolean pandas

我有以下命令:

import pandas as pd
import numpy as np
from scipy import stats
np.random.seed(12345)

standarderrors1992 = stats.sem(np.random.normal(32000,200000,3650))
standarderrors1993 = stats.sem(np.random.normal(43000,100000,3650))
standarderrors1994 = stats.sem(np.random.normal(43500,140000,3650))
standarderrors1995 = stats.sem(np.random.normal(48000,70000,3650)) 
mean1992 = np.random.normal(32000,200000,3650).mean()
mean1993 = np.random.normal(43000,100000,3650).mean()
mean1994 = np.random.normal(43500,140000,3650).mean()
mean1995 = np.random.normal(48000,70000,3650).mean()
Run Code Online (Sandbox Code Playgroud)

在这里,我找到了一组随机选择的值的平均值和标准误差。

limit = 3000
dict = {mean1992:standarderrors1992,mean1993:standarderrors1993,mean1994:standarderrors1994,mean1995:standarderrors1995} 
for key,value in dict:
    if limit > (key+(1.96*value)):
    colour = 1 
    elif limit < (key+(1.96*value)):
    colour = 0 
    elif (limit !> (key+(1.96*value))) && (limit !< (key-(1.96*value))):
    colour = ((key+(1.96*value))-limit)/((key+(1.96*value))-(key-(1.96*value)))
Run Code Online (Sandbox Code Playgroud)

在这里,我尝试将与均值和标准误差相对应的值放入字典中,以便我可以循环遍历它们。

理想情况下,我想根据特定年份的平均值和标准误差值,为变量“颜色”分配一个特定值即 1992 年的平均值和 SE

但是,我不断收到错误:

类型错误:无法解压不可迭代的 int 对象

有人能让我知道我哪里出错了吗?

Fre*_*son 17

您需要迭代 dict.items() 才能使其工作。

for key,value in dict.items():
    # do stuff here
Run Code Online (Sandbox Code Playgroud)

我建议不要将变量命名为 dict,这会掩盖 dict 函数中的构建:)