我有一个非常大的列的python pandas DataFrame。对于其中一列(称为A列),我需要尽快制作新列(称为E列)或单独的系列。新列E的元素是根据A列中的值确定的。在E列中,每个元素都是通过引用A列的相应元素来设置的,并用元素的最小值和前面的k值替换它。答:我必须多次迭代这个过程,所以速度是我的关注点。
例如,如果k等于2,那么这就是我的数据框:
A B
v 10 10
w 4 8
x 11 1
y 9 22
z 15 5
我想根据A列
创建以下E列 E
v 10
w 4
x 4
y 4
z 9
为了简化问题,我也可以除了这个结果:
E
v NaN
w NaN
x 4
y 4
z 9
答案 0 :(得分:0)
您可以使用pd.rolling_min
并设置window=k+1
以使用k+1
的回顾窗口计算滚动最小值。
pd.rolling_min(df['A'], window=3)
v NaN
w NaN
x 4
y 4
z 9
dtype: float64