Панды находят среднее значение фрейма данных на основе условного по нескольким столбцам

#python #python-3.x #pandas

#питон #python-3.x #панды

Вопрос:

Я пытаюсь найти средний вес женщин младше 20 лет, у меня есть следующий фрейм данных, я уже преобразовал возраст в int, а вес в плавающий.

 age weight height male  39.0 88.636360 180.0 True  64.0 75.000000 155.0 False  17.0 100.000000 183.0 False  35.0 63.636364 170.0 True  18.0 70.454544 173.0 False  

Я пробовал df.groupby(['male','age'])['weight'].mean()[False] , но это просто возвращает что-то вроде:

 age  18.0 64.225121 19.0 65.499535 20.0 67.855026 21.0 69.622658 22.0 69.376862  

Как я могу отфильтровать его так, чтобы он суммировал вес всех женщин в возрасте до 20 лет, а затем взял среднее значение?

Комментарии:

1. пожалуйста, опубликуйте свой ожидаемый выходной кадр данных

Ответ №1:

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

 df.loc[(~df["male"]) amp; (df["age"] lt; 20), "weight"].mean()  

Комментарии:

1. Ах, спасибо, что сработало, спасибо!, не беспокойтесь, вы не поняли меня неправильно .