我有一个包含多个时间序列变量的数据帧df。说变量' A',' B'' C'等
有索引日期。如何在循环中创建3,6和12个月的滞后版本?我想我可以手动输入每个变量,如下所示,但希望有一个有效的方法来做到这一点。感谢。
df['A_3'] = df['A'].shift(3)
df['A_6'] = df['A'].shift(6)
df['A_12'] = df['A'].shift(12)
df['B_3'] = df['B'].shift(3)
df['B_6'] = df['B'].shift(6)
df['B_12'] = df['B'].shift(12)
答案 0 :(得分:2)
试试这个:
lag = [3,6,12]
for col in df.columns:
for l in lag:
df.loc[:,col+"_"+str(l)] = df[col].shift(l)
您也可以使用itertools product
即
from itertools import product
for col,lag in product(df.columns,lags):
df[col+'_'+str(lag)] = df[col].shift(lag)