Contenido del curso

NumPy

Pandas

Cómo crear columnas nuevas en Pandas

Resumen

Transformar datos en Pandas te permite generar nuevas columnas, aplicar conversiones de tipo y categorizar información directamente desde un DataFrame. Si trabajas con análisis de datos en Python, dominar apply, lambda y la creación de columnas derivadas acelera tu flujo de trabajo y prepara la base para análisis más avanzados.

A lo largo del recorrido vas a ver cómo crear columnas a partir de operaciones aritméticas, condicionales booleanos, conversiones a datetime y funciones personalizadas que clasifican datos categóricos.

¿Cómo creo una nueva columna a partir de columnas existentes?

La forma más directa de generar información nueva en Pandas es combinar columnas que ya tienes. En la clase usamos la convención de nombrar el DataFrame como df, una notación muy extendida en la literatura técnica [00:38].

Para calcular el precio total de cada transacción, multiplicamos cantidad por precio unitario:

python import pandas as pd df = pd.read_csv('archivo.csv') df['Total Price'] = df['Quantity'] * df['Unit Price'] df.head()

Con esa operación añades una novena columna que es el producto de las dos anteriores. Sencillo, pero potente como punto de partida.

¿Qué hace df.head() en Pandas? Devuelve las primeras 5 filas del DataFrame por defecto. Puedes pasarle un número como argumento para ver más o menos filas.

¿Cómo creo columnas con condicionales booleanos?

Las comparaciones lógicas también generan columnas, y el resultado siempre será de tipo booleano (True o False). Por ejemplo, podemos marcar qué transacciones son de alto valor [02:30]:

python df['High Value'] = df['Total Price'] > 16 df['High Value'].head(10)

Ajustar el umbral cambia los resultados. Si pones > 100, en las primeras filas todo será False; si bajas a > 16, ya empiezan a aparecer valores True. Este tipo de columnas son muy útiles para filtrar después o cruzar con otras métricas.

¿Cómo convierto una columna a tipo datetime?

Pandas detecta automáticamente el tipo de cada columna, pero no siempre acierta. Para revisarlo usamos df.info(), que muestra el conteo de valores no nulos y el data type de cada columna [04:35].

La columna Invoice Date aparece como object, cuando en realidad es una fecha. Convertirla a datetime es una transformación básica pero crítica:

python df['Invoice Date'] = pd.to_datetime(df['Invoice Date']) df.info()

Al ejecutar de nuevo info, verás que el tipo cambió a datetime64. A partir de ahí puedes hacer filtros por rangos de fechas, extraer mes o año, y operaciones de tiempo.

¿Cómo aplico funciones lambda a una columna?

Las funciones lambda son funciones anónimas que se ejecutan fila por fila sobre la columna que elijas. Son ideales para transformaciones rápidas que no justifican definir una función completa.

Para aplicar un descuento del 10% al precio unitario [06:05]:

python df['Discounted Price'] = df['Unit Price'].apply(lambda x: x * 0.9) df.head(3)

Aquí x representa el valor de cada celda. Al multiplicarlo por 0.9, te quedas con el 90% del precio original. Si el precio era 2.55, el resultado será 2.295. La operación se repite automáticamente en todas las filas.

¿Cuándo uso lambda en lugar de una función normal? Usa lambda cuando la operación cabe en una sola línea y no necesitas reutilizarla. Para lógica más compleja o reutilizable, define una función con def.

¿Cómo categorizo datos con apply y una función personalizada?

Cuando la transformación tiene varias condiciones, conviene definir una función propia y pasarla a apply. Esto funciona tanto para datos numéricos como para crear etiquetas categóricas [07:50].

Vamos a clasificar precios en tres rangos: alto, medio y bajo.

python def categorize_price(price): if price > 50: return 'High' elif price < 20: return 'Medium' else: return 'Low'

df['Price Category'] = df['Unit Price'].apply(categorize_price) df.head(10)

La función recibe cada precio individualmente, evalúa las condiciones en orden y devuelve la etiqueta correspondiente. En las primeras 10 filas del dataset todos los valores caen en Medium, lo que indica que conviene revisar los umbrales o segmentar mejor según la distribución real.

Pasos clave para transformar datos en Pandas

  • Crear columnas derivadas con operaciones aritméticas entre columnas existentes.
  • Generar columnas booleanas con condicionales como >, < o ==.
  • Convertir tipos de datos con funciones como pd.to_datetime().
  • Aplicar lambda para transformaciones rápidas sobre una columna.
  • Usar apply con funciones personalizadas para categorizar o aplicar lógica compleja.

¿Qué diferencia hay entre apply y lambda? apply es el método que ejecuta una función sobre cada fila o columna. lambda es la sintaxis para escribir esa función en una sola línea. Suelen usarse juntos.

Conocer los datos que ya tienes es la mitad del trabajo; la otra mitad es crear información nueva a partir de ellos. ¿Qué nuevas columnas crees que aportarían valor al proyecto que estás trabajando? Déjalo en los comentarios.