Pandas для двоичной классификации

#pandas #feature-engineering

#pandas #разработка функций

Вопрос:

Я использую Pandas для обработки данных перед обучением двоичного классификатора. Одной из вещей, которую я не смог найти, была функция, которая сообщает мне, учитывая значение определенной функции, скажем, Возраст (люди, которым, например, 60 лет), какой процент этих людей классифицируется как 1 или как 0 (в столбце двоичных данных). И это для всех разных возрастов в столбце Возраст.

Простой пример, иллюстрирующий мою идею. У меня есть следующий фрейм данных:

 import pandas as pd

data = pd.DataFrame({'Age': [23, 24, 23 ,25 ,24 ,24 ,20], 'label': [0, 1, 1, 0, 1, 1, 0]})
  

и я хочу функцию, которая дает мне процент людей всех возрастов, помеченных как 0 или как 1. Вот так:

    Age   Percentage
0   20     0.0
1   23     0.5
2   24     1.0
3   25     0.0
  

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

Спасибо!

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

1. Это чисто вопрос pandas, и он не имеет ничего общего с machine-learning или scikit-learn — пожалуйста, не спамите нерелевантные теги (удалены).

Ответ №1:

Просто сделайте groupby, имея в виду:

 >>> data.groupby('Age').mean()
     label
Age       
20     0.0
23     0.5
24     1.0
25     0.0
  

Сбросьте индекс, чтобы получить его точно таким, каким вы опубликовали ожидаемый результат

 >>> data.groupby('Age').mean().reset_index()
   Age  label
0   20    0.0
1   23    0.5
2   24    1.0
3   25    0.0