我试图在熊猫身上复制这个Stata循环:
forvalues i = 1/6 {
gen int codeL`i' = L`i'.location_level_2
gen int codeF`i' = F`i'.location_level_2
}
如您所见,我想创建这些新列:codeL1 codel2…依此类推,直到我得到codeL6,基于变量location\u level\u2的滞后和超前
在斯塔塔很容易,但由于我刚开始研究熊猫,我不知道。你知道吗
这将是我的尝试:
for i in range(1,7):
df[codeLi] = df[location_level_2].shift(i)
for i in range(-1,-7):
df[codeLi] = df[location_level_2].shift(i)
这可能会帮助您:
你很接近一个有效的解决方案!以下是@ALollz评论中的建议:
注意,结构
f'codeL{i}
自动格式化范围内的整数。如果出于某种原因想单独创建变量,可以执行new_var = 'codeL' + str(i)
。你知道吗还要注意的是,没有理由对负数范围执行第二个循环,只需将负整数传递给
pd.shift
。你知道吗相关问题 更多 >
编程相关推荐