Как pandas groupby определенное значение в столбце?

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

# Create Age Intervals
bins = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
df['age_intervals'] = pd.cut(df['age'],bins)

Теперь у меня есть еще один столбец с именем no_show в котором указывается, появляется ли человек на встречу или нет, используя значения 0 или 1. Используя приведенный ниже код, я могу группировать данные на основе age_intervals,

df[['no_show','age_intervals']].groupby('age_intervals').count()

Output: 
age_intervals   no_show
  (0, 5]        8192
 (5, 10]        7017
(10, 15]        5719
(15, 20]        7379
(20, 25]        6750

Но как я могу сгруппировать no_show данные основаны на его значениях 0 и 1. Например, в возрастном интервале (0,5) из 8192 3291 равны 0, а 4901 равны 1 для no_show и так далее.

1 ответ

Решение

Самый простой способ - сгруппировать по обоим столбцам и использовать size() который возвращает серию:

df.groupby(['age_intervals', 'no_show']).size()

Это вернет Серию с разделенными значениями в зависимости от age_intervals столбец и no_show колонка.

Другие вопросы по тегам