gpt4 book ai didi

python - 如何在 Pandas 中创建多个列(就像 Stata 中的循环一样)?

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:12 25 4
gpt4 key购买 nike

我正在尝试在 Pandas 中复制这个 Stata 循环:

forvalues i = 1/6 {    
gen int codeL`i' = L`i'.location_level_2
gen int codeF`i' = F`i'.location_level_2
}

如您所见,我想创建这些新列:codeL1 代码 L2...等等,直到我得到 codeL6,基于变量 location_level_2 的滞后和领先

这在 Stata 中有点简单,但由于我刚开始使用 Pandas,所以我不知道。

这将是我的尝试:

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 评论中的建议的一个:

for i in range(1, 7):
df[f'codeL{i}'] = df['location_level_2'].shift(i)
df[f'codeF{i}'] = df['location_level_2'].shift(-i)

请注意,结构 f'codeL{i} 会自动格式化范围内的整数。如果您出于某种原因想要单独创建变量,您可以执行 new_var = 'codeL' + str(i)

另请注意,没有理由使用一系列负数进行第二次循环,只需将负整数传递给 pd.shift

关于python - 如何在 Pandas 中创建多个列(就像 Stata 中的循环一样)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57152892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com