Рассчитать среднее количество строк для каждой группы - PullRequest
0 голосов
/ 25 января 2019

Мне нужно вычислить среднее значение определенного столбца в DataFrame, чтобы рассчитывать средние значения для каждой строки, исключая предыдущие значения строки, для которой он рассчитан в определенной группе. Предположим, у нас есть этот фрейм данных, это ожидаемый результат

существует ли способ, например, повторять каждую строку по индексу, добавлять предыдущую строку по индексу в каждой итерации, а затем вычислять среднее значение. Интересно, есть ли более эффективный способ сделать это

unit    A      Expected 
T10     8      8
T10     7      7.5
T10     12     9
T11     10     10
T11     6      8
T12     17     17
T12     7      12
T12     3      9

Ответы [ 3 ]

0 голосов
/ 25 января 2019

Вы можете использовать expanding:

df2 = df.groupby('unit')['A'].expanding().mean().reset_index()
df['Expected'] = df2['A']
0 голосов
/ 25 января 2019

Для вычисления среднего значения определенного столбца в пандах все, что вам нужно сделать, - это использовать метод среднего значения библиотеки панд.

mean = df["frequencies"].mean()

где df - это имя кадра данных, а частоты - столбец, для которого вы хотите найти среднее значение

0 голосов
/ 25 января 2019

Делим DataFrameGroupBy.cumsum со счетчиком на GroupBy.cumcount:

g = df.groupby('unit')['A']
df['Expected'] = g.cumsum().div(g.cumcount() + 1)
print (df)
  unit   A  Expected
0  T10   8       8.0
1  T10   7       7.5
2  T10  12       9.0
3  T11  10      10.0
4  T11   6       8.0
5  T12  17      17.0
6  T12   7      12.0
7  T12   3       9.0
...