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

Как эффективно создать несколько новых столбцов из функции в Pandas?

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

How to Efficiently Create Multiple New Columns from a Function in Pandas?

Создание нескольких новых столбцов из функции с помощью Pandas

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

Исходный подход: присвоение диапазону индексов

Первоначально вы можете попытаться присвоить выходные данные функцию непосредственно для диапазона индексов в DataFrame, используя синтаксис df.ix[:,10:16] = df.textcol.map(extract_text_features). Однако этот подход часто может приводить к ошибкам из-за несовместимого типа возвращаемого значения функции.

Итерируемое решение

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

Использование zip()

Более эффективный и гибкий подход — использовать функцию zip() в сочетании с картой() для создания новые колонки. Функция zip() объединяет выходные данные функции в кортеж, который затем можно распаковать в отдельные столбцы. Например, следующий код демонстрирует, как создать шесть новых столбцов с помощью метода zip():

df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = zip(*df['num'].map(powers))

Улучшено Методы DataFrame

Недавние обновления Pandas представили более удобные методы применения функций к столбцам и создания новых столбцов. Например, метод df.apply() позволяет указать формат вывода (DataFrame, Series или список) и обрабатывать дополнительные параметры. Кроме того, метод df.assign() позволяет создавать новые столбцы напрямую, без явного назначения выходных данных. Эти новые методы обеспечивают большую гибкость и эффективность при создании нескольких новых столбцов на основе функции.

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3