«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как добиться создания условного столбца: изучение If-Elif-Else в Pandas DataFrame?

Как добиться создания условного столбца: изучение If-Elif-Else в Pandas DataFrame?

Опубликовано 5 ноября 2024 г.
Просматривать:885

How to Achieve Conditional Column Creation: Exploring If-Elif-Else in Pandas DataFrame?

Создание условного столбца: If-Elif-Else в Pandas

Данная проблема требует добавления нового столбца в DataFrame на основе ряда условных критериев. Задача заключается в реализации этих условий при сохранении эффективности и читабельности кода.

Решение с использованием приложения-функции

Один из подходов предполагает создание функции, которая сопоставляет каждую строку с желаемым результатом. на основе условий:

def f(row):
    if row['A'] == row['B']:
        return 0
    elif row['A'] > row['B']:
        return 1
    else:
        return -1

df['C'] = df.apply(f, axis=1)

Этот метод удобен для чтения и прост в реализации, но он не векторизован и может привести к проблемам с производительностью при работе с большими наборами данных.

Векторизованное решение

Для повышения эффективности рекомендуется использовать векторизованный подход с использованием функции NumPy np.where:

df['C'] = np.where(
    df['A'] == df['B'], 0, np.where(
    df['A'] > df['B'], 1, -1))

Эта операция выполняет условный выбор поэлементно в DataFrame, в результате чего создается новый столбец с нужными значениями.

Этот векторизованный подход обеспечивает значительный выигрыш в производительности по сравнению с методом, основанным на функциях. Это также обеспечивает более краткую и удобочитаемую реализацию условных критериев.

Заявление о выпуске Эта статья перепечатана по адресу: 1729378216. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3