"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como criar com eficiência várias novas colunas a partir de uma função no Pandas?

Como criar com eficiência várias novas colunas a partir de uma função no Pandas?

Publicado em 2024-11-07
Navegar:108

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

Criando várias novas colunas a partir de uma função usando Pandas

No Pandas, você pode encontrar situações em que precisa criar várias novas colunas com base em uma função personalizada aplicada a um coluna existente. A tarefa pode parecer simples, mas desafios inesperados podem surgir devido ao tipo de retorno esperado da função.

Abordagem original: Atribuição ao intervalo do índice

Inicialmente, você pode tentar atribuir a saída de uma função diretamente para um intervalo de índices em um DataFrame usando a sintaxe df.ix[: ,10:16] = df.textcol.map(extract_text_features). No entanto, esta abordagem muitas vezes pode resultar em erros devido ao tipo de retorno incompatível da função.

Solução Iterável

Uma solução potencial é iterar sobre cada linha do DataFrame usando df.iterrows( ). Este método permite aplicar a função a cada linha individualmente e capturar os resultados como uma tupla. No entanto, esta abordagem pode ser significativamente mais lenta do que outras opções.

Usando zip()

Uma abordagem mais eficiente e flexível é usar a função zip() em conjunto com map() para criar as novas colunas. A função zip() combina a saída da função em uma tupla, que pode então ser descompactada em colunas individuais. Por exemplo, o código a seguir demonstra como criar seis novas colunas usando o método zip():

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

Métodos de DataFrame aprimorados

Atualizações recentes do Pandas introduziram métodos mais convenientes para aplicar funções a colunas e criar novas colunas. Por exemplo, o método df.apply() permite especificar o formato de saída (DataFrame, Série ou lista) e manipular parâmetros adicionais. Além disso, o método df.assign() permite criar novas colunas diretamente, sem atribuir explicitamente a saída. Esses métodos mais recentes fornecem mais flexibilidade e eficiência na criação de várias novas colunas com base em uma função.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3