"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo crear de forma eficiente varias columnas nuevas a partir de una función en Pandas?

¿Cómo crear de forma eficiente varias columnas nuevas a partir de una función en Pandas?

Publicado el 2024-11-07
Navegar:951

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

Creación de varias columnas nuevas a partir de una función utilizando Pandas

En Pandas, puedes encontrar situaciones en las que necesitas crear varias columnas nuevas basadas en una función personalizada aplicada a una columna existente. La tarea puede parecer sencilla, pero pueden surgir desafíos inesperados debido al tipo de retorno esperado de la función.

Enfoque original: Asignar al rango de índice

Al principio, puede intentar asignar la salida de una función directamente a un rango de índices en un DataFrame usando la sintaxis df.ix[: ,10:16] = df.textcol.map(extract_text_features). Sin embargo, este enfoque a menudo puede generar errores debido al tipo de retorno incompatible de la función.

Solución iterable

Una posible solución es iterar sobre cada fila del DataFrame usando df.iterrows( ). Este método le permite aplicar la función a cada fila individualmente y capturar los resultados como una tupla. Sin embargo, este enfoque puede ser significativamente más lento que otras opciones.

Usar zip()

Un enfoque más eficiente y flexible es usar la función zip() junto con map() para crear las nuevas columnas. La función zip() combina la salida de la función en una tupla, que luego se puede descomprimir en columnas individuales. Por ejemplo, el siguiente código demuestra cómo crear seis nuevas columnas usando el método zip():

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

Métodos de DataFrame mejorados

Las actualizaciones recientes de Pandas han introducido métodos más convenientes para aplicar funciones a columnas y crear nuevas columnas. Por ejemplo, el método df.apply() le permite especificar el formato de salida (DataFrame, Serie o lista) y manejar parámetros adicionales. Además, el método df.assign() le permite crear nuevas columnas directamente sin asignar explícitamente la salida. Estos métodos más nuevos brindan más flexibilidad y eficiencia al crear múltiples columnas nuevas basadas en una función.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3