有没有办法为python中没有循环的列表中的每个成员执行任务?

时间:2017-07-10 01:52:02

标签: python pandas for-loop

我在pandas中有大量数组,有256行和5列,我想计算每列中4个数组成员的统计(最小,最大,平均......)特征。我写了下面的代码,但它非常耗时:

for col in array:
    for j in range(0,256,1):
        min = array[col].iloc[j:j+4].min()
        max= array[col].iloc[j:j+4].max()
        (other functions)

因为我有很多数组,我想为每个数组执行此任务,这非常耗时。有没有办法编写一个更简单的代码,没有循环,减少执行时间。

1 个答案:

答案 0 :(得分:1)

您想要计算pandas.DataFrame的4个连续元素的最小值和最大值?

这可以使用pandas rolling完成:

df.rolling(4).agg(['min', 'max']).shift(-3)

转换是必要的,因为pandas的默认设置是使窗口右对齐。