我在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)
因为我有很多数组,我想为每个数组执行此任务,这非常耗时。有没有办法编写一个更简单的代码,没有循环,减少执行时间。
答案 0 :(得分:1)
您想要计算pandas.DataFrame
的4个连续元素的最小值和最大值?
这可以使用pandas rolling
完成:
df.rolling(4).agg(['min', 'max']).shift(-3)
转换是必要的,因为pandas的默认设置是使窗口右对齐。