Извлечение информационного набора данных в пандах - PullRequest
0 голосов
/ 23 октября 2018

У меня есть вектор со 100 экземплярами, и мне нужно среднее значение и мин каждые 10 экземпляров.Каков наилучший способ сделать это в пандах?

Я решил свою проблему следующим образом:

mean = []
min = []
aux = 0
for i in range(10, len(df)+1, 10):
    mean.append(df[aux:i].mean())
    mean.append(df[aux:i].min())
    aux = i

Есть ли более эффективный способ в пандах?

1 Ответ

0 голосов
/ 23 октября 2018

Для кадра данных, похожего на:

>>> 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 значений на группу.Затем он группируется по номеру этой группы и выдает среднее и минимальное значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...