【发布时间】:2020-11-06 13:22:09
【问题描述】:
我在下面有一个数据框。我正在尝试通过计算为 var1、var2、var3 创建滞后 (var_n/ lag2(var_n))-2 (n 为 1,2,3)
以下代码适用于 lag2。但我需要执行按“grp”分组的计算
代码:
滞后=[2]
df=pd.concat([df]+[df.groupby('grp'['var1','var2','var3'].shift(x).add_prefix('lag'+str(x) ) for x in lag],axis=1)
我在下面尝试了另一种方法,但我无法应用分组方式:
同比 = [12]
columns_y = df.loc[:, 'var1':'var3']
对于columns_y.columns中的col:
for x in yoy:
columns_y.loc[:,col+"_yoy"] =(columns_y[col]/(columns_y[col].shift(x)))-1
【问题讨论】:
标签: python python-3.x pandas pandas-groupby