Для кадра данных, похожего на:
>>> df.head()
0
0 0.963734
1 0.797373
2 0.623054
3 0.420744
4 0.306232
Ваше решение возвращает что-то вроде этого:
>>> mean
[0 0.587664
dtype: float64, 0 0.574274
dtype: float64, 0 0.462168
dtype: float64, 0 0.489871
dtype: float64, 0 0.496362
dtype: float64, 0 0.542037
dtype: float64, 0 0.336029
dtype: float64, 0 0.391856
dtype: float64, 0 0.47899
dtype: float64, 0 0.51505
dtype: float64]
>>> min
[0 0.306232
dtype: float64, 0 0.033548
dtype: float64, 0 0.083291
dtype: float64, 0 0.016033
dtype: float64, 0 0.131066
dtype: float64, 0 0.243215
dtype: float64, 0 0.052778
dtype: float64, 0 0.028525
dtype: float64, 0 0.170831
dtype: float64, 0 0.040911
dtype: float64]
Вы можете получить те же результаты, но в более хорошем формате, просто используя groupby
и agg
:
>>> df.assign(count=np.repeat(range(10),10)).groupby('count').agg(['mean','min'])
0
mean min
count
0 0.587664 0.306232
1 0.574274 0.033548
2 0.462168 0.083291
3 0.489871 0.016033
4 0.496362 0.131066
5 0.542037 0.243215
6 0.336029 0.052778
7 0.391856 0.028525
8 0.478990 0.170831
9 0.515050 0.040911
Для этого присваивается каждая строка группе, что дает 10 значений на группу.Затем он группируется по номеру этой группы и выдает среднее и минимальное значения