Группировка и фильтрация для функции agg - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь вычислить средний вес под двумя столбцами, пол и тип, так как df ниже:

sex |  type     | weight
 M     Obese      305
 F     Normal     100
 M     Underweight 105

Ответы [ 2 ]

1 голос
/ 11 ноября 2019

Вы используете filter неправильно здесь. Передайте аргумент like, который хотите сохранить:

df.groupby(['sex','type'])['weight'].mean().filter(like='Obese') 

Вывод:

sex  type 
M    Obese    305
Name: weight, dtype: int64
0 голосов
/ 11 ноября 2019

Вы пытаетесь это сделать?

import pandas as pd

df = pd.DataFrame({'sex': ['M', 'F', 'M'], 'type':['obese', 'Normal' ,'Underweight'],
    'weight': [305, 100, 105]})
print(df[df['type'] == 'obese']['weight'].mean())

Во-первых, я не думаю, что вам нужна функция filter (), она делает что-то не так, как вы думали. Во-вторых, вы всегда хотите сначала выбрать или «отфильтровать», а затем выполнить вычисления.

Надеюсь, это поможет.

...