Python 创建一个新列的最快方法,该列包含另一列的k-trailing min
我有一个非常大的列的python数据框架。对于其中一列(称为列A),我需要一种快速可行的方法来创建一个新列(称为列E)或单独的系列。新列E的元素是根据列A中的值确定的。在列E中,每个元素都是通过引用列A中相应的元素来设置的,并将其替换为元素的最小值和A中前面的k值。我必须多次迭代此过程,因此速度是我关心的问题 例如,如果k等于2,这是我的数据帧:Python 创建一个新列的最快方法,该列包含另一列的k-trailing min,python,pandas,minimum,trailing,Python,Pandas,Minimum,Trailing,我有一个非常大的列的python数据框架。对于其中一列(称为列A),我需要一种快速可行的方法来创建一个新列(称为列E)或单独的系列。新列E的元素是根据列A中的值确定的。在列E中,每个元素都是通过引用列A中相应的元素来设置的,并将其替换为元素的最小值和A中前面的k值。我必须多次迭代此过程,因此速度是我关心的问题 例如,如果k等于2,这是我的数据帧: A B v 10 10 w 4 8 x 11 1 y 9 22 z 15 5 我想在A列的
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
您可以使用
pd.rolling\u 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