Как удалить среднее / минимальное / максимальное значение группы из всех строк в pandas - PullRequest
0 голосов
/ 15 апреля 2020

Учитывая эти данные (но, очевидно, еще много строк):

group   value
  1      2.5
  1      3.5
  2      4.5
  2      5.5

MWE:

import pandas as pd
df = pd.DataFrame({"group": [1, 1, 2, 2], "value": [2.5, 3.5, 4.5, 5.5]})

Как мы можем легко удалить среднее / мин / макс для группы?

При удалении результата groupby из строк вы получите NaN s из-за несовпадающего индекса:

In [2]: df.value - df.groupby("group")["value"].mean()
Out[2]: 
0    NaN
1    0.5
2   -0.5
3    NaN

1 Ответ

2 голосов
/ 15 апреля 2020

Используйте GroupBy.transform для повторных агрегированных значений для групп:

print(df.value - df.groupby("group")["value"].transform('mean'))
0   -0.5
1    0.5
2   -0.5
3    0.5
Name: value, dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...