0

我有一个带有非常大列的 python pandas DataFrame。对于其中一列(称为 A 列),我需要尽可能快的方法来创建一个新列(称为 E 列)或单独的系列。新 E 列的元素是根据 A 列中的值确定的。在 E 列中,每个元素都是通过引用 A 列的相应元素来设置的,并将其替换为该元素的最小值和它之前的 k 值A. 我必须多次迭代这个过程,所以速度是我关心的问题。

例如,如果 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
4

1 回答 1

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
于 2015-08-31T17:42:17.320 回答