我不知道你们中是否有人有过这样的行为,但是在调试我的代码之后,我注意到我的代码发生了一件非常奇怪的事情。基本上,我在某个索引(“日期”)处使用 pandas 数据帧(具有 2 个分层列)中包含的值填充一个 numpy 数组(“vols”),但是如果我尝试在脚本中执行这段代码:
for i in range(capEndDates_size):
for j in range(strike_size):
vols[i,j] = float(df[capEndDates[i]][strikes_list[j]].ix[date])
我无法用索引“日期”的数据框中包含的变量正确填充变量“vols”的所有值,而是在我期望值的地方得到一些“nan”。有趣的是,如果我在解释器中执行这段代码,这是正确的(即在我正在使用的 IDE 的 Spyder 编辑器上按 f9)!我通过重复这些行两次(即强制脚本执行两次)找到了这个错误的解决方法。我的解决方案是这样的:
for i in range(capEndDates_size):
for j in range(strike_size):
vols[i,j] = float(df[capEndDates[i]][strikes_list[j]].ix[date])
for i in range(capEndDates_size):
for j in range(strike_size):
vols[i,j] = float(df[capEndDates[i]][strikes_list[j]].ix[date])
这真的是不可接受的。有谁知道为什么会这样?