执行python脚本时的奇怪行为

2024-09-30 16:25:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道你们中是否有人有过这样的行为,但在调试我的代码之后,我注意到我的代码发生了一件非常奇怪的事情。 基本上,我是在某个索引(“date”)处用数据帧(有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])

我不能用索引'date'处的数据帧中包含的值正确地填充变量'vols'的所有值,而是在期望值的地方得到一些'nan'。 有趣的是,如果我在解释器中执行一段代码,这是正确的方法(即在Spyder的编辑器上按f9,这是我正在使用的IDE)!我通过两次重复这些行(也就是说,强制脚本执行两次这些行)找到了解决这个bug的方法。 我的解决方案如下:

   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])

这实在令人无法接受。 有人知道为什么会这样吗?你知道吗


Tags: 数据代码indfforsizedaterange