Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Существует ситуация, когда требуется создать новый столбец в DataFrame на основе значений из других столбцов. Например, в DataFrame могут быть столбцы, которые обозначают различные категории. Задача состоит в том, чтобы создать новый столбец, который будет представлять собой результат применения определенной функции к значениям этих столбцов.
Рассмотрим пример. Пусть имеется DataFrame, который содержит информацию о населении, разделенное по этнической принадлежности. В DataFrame есть столбцы, обозначающие различные этнические группы, и каждая строка представляет собой одного человека. Необходимо создать новый столбец, который будет обозначать общую этническую принадлежность человека, исходя из значений в столбцах, обозначающих различные этнические группы.
В Pandas это можно сделать с помощью метода apply()
. Этот метод позволяет применить функцию ко всему DataFrame или к отдельным столбцам. В данном случае функцию следует применить ко всем строкам DataFrame, что можно сделать, указав параметр axis=1
.
Ниже приведен пример функции, которую можно использовать для создания нового столбца. Эта функция принимает строку DataFrame и возвращает строку в соответствии с определенными условиями.
def assign_ethnicity(row): if row['ERI_Hispanic'] == 1: return 'Hispanic' elif row[['ERI_AmerInd_AKNatv', 'ERI_Asian', 'ERI_Black_Afr.Amer', 'ERI_HI_PacIsl', 'ERI_White']].sum() > 1: return 'Two or More' elif row['ERI_AmerInd_AKNatv'] == 1: return 'A/I AK Native' elif row['ERI_Asian'] == 1: return 'Asian' elif row['ERI_Black_Afr.Amer'] == 1: return 'Black/AA' elif row['ERI_HI_PacIsl'] == 1: return 'Haw/Pac Isl.' elif row['ERI_White'] == 1: return 'White' else: return 'Unknown'
Чтобы применить эту функцию к DataFrame и создать новый столбец, следует использовать метод apply()
. Ниже приведен пример кода, который создает новый столбец ‘Ethnicity’, основанный на значениях других столбцов.
df['Ethnicity'] = df.apply(assign_ethnicity, axis=1)
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
В результате выполнения этого кода в DataFrame появится новый столбец ‘Ethnicity’, значения которого будут основаны на значениях из других столбцов, исходя из условий, заданных в функции assign_ethnicity()
.
Добавить комментарий