我想在现有的 pandas 数据框 ( df
) 中创建三个新列,方法是对同一列使用相同的lambda
函数,但输入不同。我已通过以下代码行成功完成此操作。不过,我想知道是否有更快的方法可以用更少的代码行产生相同的输出:
df["1d"] = (
df
.groupby(cols)["ln"]
.apply(lambda x: x - x.shift(1))
.values
)
df["5d"] = (
df
.groupby(cols)["ln"]
.apply(lambda x: x - x.shift(5))
.values
)
df["30d"] = (
df
.groupby(cols)["ln"]
.apply(lambda x: x - x.shift(30))
.values
)