for i in range(0, n_out): cols.append(df.shift(-i)) if i == 0: names += [('var%d(t)' % (j + 1)) for j in range(n_vars)] else: names += [('var%d(t+%d)' % (j + 1, i)) for j in range(n_vars)]
时间: 2024-04-27 10:24:06 浏览: 121
Python for i in range ()用法详解
这部分代码是循环遍历输出序列的步长n_out,并将每一列数据向上平移i个时间步长(shift(-i)函数),并将得到的DataFrame添加到cols列表中。同时,根据列的名称和时间步长,将列名添加到names列表中。其中,j表示输出序列中的每个变量,从0开始,因此"var%d(t+%d)" % (j + 1, i)的作用是将变量的名称转换为"var1(t+i)"、"var2(t+i)"等。
在循环中,当i等于0时,即第一列数据时,只需要将变量的名称转换为"var1(t)"、"var2(t)"等即可;当i大于0时,即后面的数据列时,需要将变量的名称转换为"var1(t+i)"、"var2(t+i)"等。
最终,将得到的cols和names列表转换为MultiIndex,并使用它们来创建新的DataFrame。
阅读全文