Панды: Рассчитать среднее значение для группы из n значений каждого столбца кадра данных - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть фрейм данных следующего типа:

     A      B    
0    1      2    
1    4      5    
2    7      8    
3    10    11   
4    13    14   
5    16    17   

Я хочу вычислить среднее значение первых 3 элементов каждого столбца, а затем следующих 3 элементов и т. Д., А затем сохранить в фрейме данных.

Желаемый результат -

      A      B    
0     4      5
1     12    14

Использование Group By было одним из подходов, о котором я думал, но я не могу понять, как использовать Group by в этом случае.

1 Ответ

0 голосов
/ 21 февраля 2019

Если по умолчанию RangeIndex, используйте целочисленное деление и перейдите к groupby:

df = df.groupby(df.index // 3).mean()
print (df)
    A   B
0   4   5
1  13  14

Сведения :

print (df.index // 3)
Int64Index([0, 0, 0, 1, 1, 1], dtype='int64')

Общее решение с созданным массивомпо длине DataFrame - работа со всеми значениями индекса:

df = df.groupby(np.arange(len(df)) // 3).mean()

Detail :

print (np.arange(len(df)) // 3)
[0 0 0 1 1 1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...