#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