Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
09 Авг 2023
2 мин
5908

Создание нового столбца на основе значений из других столбцов в Pandas

Пройдите тест, узнайте какой профессии подходите

Существует ситуация, когда требуется создать новый столбец в DataFrame на основе значений из других столбцов. Например, в DataFrame могут быть столбцы, которые

Освойте 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().

Добавить комментарий