【发布时间】:2021-10-20 04:51:57
【问题描述】:
假设我有一个 pandas 数据框,并且我想创建一个使用滚动窗口的新列,例如:
test = pd.DataFrame({'x': range(0,100)})
test['rol'] = test.rolling(20,center=False).sum()
有没有办法使用eval 函数来做到这一点就地?
奖励:我想了解eval、assign 和 df['some_column_name'] = ... 之间可能存在的性能问题(内存和速度)
【问题讨论】:
-
eval是什么意思?滚动不支持'eval'。 -
我想你可能已经回复了。例如,如果我想添加另一个名为“add2”的列,我可以在上面的示例中使用
test.eval('add2 = x+2')。我想知道是否有办法将eval和rolling结合起来,但从你所说的来看,它不受支持。 -
我想你的意思是
assign,而不是eval
标签: python pandas dataframe rolling-computation