Python For循环错误;例外

时间:2017-01-23 03:27:28

标签: python for-loop

虽然我对MATLAB有一些经验,但我是python的新手。知道这里发生了什么吗?我试图理解为什么会出现这种“异常”错误。谢谢!

for i in range(1,len(yrsPOP)):
    tmpMax = yrsPOP.ix[i,:].max()
    tmpMin = min(yrsPOP.ix[i,:])
    tmp = tmpMax - tempMin
    change.append(tmp)

Error: During handling of the above exception, another exception occurred:

似乎错误发生在“tempMax”行中。感谢帮助!

此致 Python Rookie

1 个答案:

答案 0 :(得分:2)

基于yrsPOP是一个二维值数组的注释:

for row in yrsPOP:
    tmpMax = max(row)
    tmpMin = min(row)
    tmp = tmpMax - tmpMin
    change.append(tmp)

如果值存储在for row in yrsPOP.ix中,您应该将循环更改为yrsPOP.ix

原始代码的问题

1,将成为包含单个元素的元组:(1,),这很可能不是您想要的索引。

使用[i:]表示“索引i及以后的所有项目”。 如果您想获取索引i的项目,请使用[i]

您正在减去tempMin而不是tmpMin,这会导致访问未声明的变量时出错。

您可能还想将tmpMax更改为max(yrsPOP.ix[i:])

len(yrsPOP)获取了yrsPOP中的项目数,但是您引用的是yrsPOP.ix,这是正确的吗?