Los DataFrames de Pandas son esenciales para la manipulación de datos en Python. Agregar nuevas columnas es una tarea común, y Pandas ofrece varias maneras eficientes de lograrlo. Este artículo explora cuatro métodos clave, destacando sus fortalezas y debilidades para ayudarte a elegir el mejor enfoque para tu situación.
Tabla de Contenido
Método del Operador []: La Manera Rápida y Fácil
Este es el método más simple, ideal para agregar columnas basadas en datos existentes o cálculos sencillos. Asignas valores directamente a una nueva columna usando corchetes.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df['City'] = ['Nueva York', 'Londres', 'París']
print(df)
Limitaciones: Este método no puede insertar en una posición específica y requiere que los datos de la nueva columna coincidan con la longitud del DataFrame.
Método df.insert()
: Colocación Precisa de Columnas
df.insert()
proporciona más control, permitiéndote especificar el índice (posición) de la columna. Toma tres argumentos: la posición, el nombre de la columna y los datos.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.insert(1, 'City', ['Nueva York', 'Londres', 'París'])
print(df)
Mejor para: Situaciones donde el orden de las columnas es crítico.
Método df.assign()
: Agregar Múltiples Columnas Eficientemente
df.assign()
es particularmente útil para agregar múltiples columnas a la vez o crear nuevas columnas basadas en cálculos. Importantemente, devuelve un DataFrame *nuevo*, dejando el original sin cambios.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df = df.assign(City=['Nueva York', 'Londres', 'París'], Age_Squared=df['Age']**2)
print(df)
Mejor para: Adiciones de múltiples columnas y columnas calculadas; su inmutabilidad previene la pérdida accidental de datos.
Método df.loc()
: Creación Condicional de Columnas
df.loc()
ofrece la mayor flexibilidad, permitiendo la creación condicional de columnas basada en la selección de filas e indexación booleana.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.loc[df['Age'] < 30, 'Age_Group'] = 'Joven'
df.loc[df['Age'] >= 30, 'Age_Group'] = 'Mayor'
print(df)
Mejor para: Agregar columnas basadas en condiciones complejas; requiere familiaridad con la indexación booleana.
Conclusión: El método óptimo depende de tus necesidades específicas. El operador [] es rápido para adiciones simples, df.insert()
controla la posición de la columna, df.assign()
maneja múltiples columnas o columnas calculadas eficientemente, y df.loc()
permite la creación condicional de columnas. Elige el método que mejor equilibre la legibilidad y la funcionalidad para tu tarea.