Transformaciones y Manipulación de Datos con Pandas en Python

Clase 17 de 32Curso de Python para Ciencia de Datos

Resumen

¿Cómo transformar datos para análisis más avanzado en Pandas?

Transformar y analizar datos es fundamental en cualquier proyecto de ciencia de datos. Poder crear nuevas columnas, realizar transformaciones básicas y avanzadas, y aplicar funciones como Lambda y Apply, permite un manejo más preciso y eficiente de la información. En este artículo, exploraremos cómo manipular un DataFrame utilizando Pandas para preparar datos para análisis avanzados.

¿Cómo crear una nueva columna combinando datos existentes?

Un método efectivo para extraer información valiosa es la creación de nuevas columnas a partir de las ya existentes. En este caso, usaremos un archivo CSV como fuente de datos. Al importar Pandas y el CSV, se puede manipular el DataFrame para crear la columna TotalPrice multiplicando la cantidad por el UnitPrice.

import pandas as pd

df = pd.read_csv('data.csv')  # Cambia 'data.csv' al nombre de tu archivo
df['TotalPrice'] = df['cantidad'] * df['UnitPrice']
print(df.head())

Este proceso genera una nueva columna TotalPrice que contiene el resultado de multiplicar las cantidades por el precio unitario.

¿Cómo aplicar condiciones para crear nuevas columnas?

Las condiciones pueden usarse para crear columnas con valores booleanos. Supongamos que queremos determinar si el TotalPrice es mayor de 100. Esto puede ser fácilmente realizado con una comparación dentro del DataFrame.

df['HighValue'] = df['TotalPrice'] > 100
print(df[['HighValue']].head(10))

Aquí, HighValue será True para filas donde el total supera los 100, permitiendo rápidamente identificar valores altos.

¿Qué tipo de dato tiene cada columna y cómo cambiarlo?

Pandas asigna automáticamente un tipo a cada columna, pero a veces necesitamos cambiarlo para un manejo más eficiente. Supongamos que InvoiceDate está etiquetado como un objeto, pero queremos convertirlo en un tipo de tiempo.

df['InvoiceDate'] = pd.to_datetime(df['InvoiceDate'])
print(df.info())

Esto convierte InvoiceDate a un tipo DateTime, mejorando la manipulación de datos temporales.

¿Cómo usar lambdas para transformaciones de datos?

La función Lambda es ideal para transformaciones rápidas y personalizadas. Por ejemplo, si deseamos aplicar un descuento del 10% al precio unitario, podemos usar Lambda de la siguiente manera:

df['DiscountedPrice'] = df['UnitPrice'].apply(lambda x: x * 0.9)
print(df[['UnitPrice', 'DiscountedPrice']].head())

DiscountedPrice muestra el precio después de aplicar el descuento.

¿Cómo categorizar precios con funciones personalizadas?

No solo los datos numéricos pueden ser transformados, también es posible categorizar datos con funciones personalizadas. Aquí crearemos una función para asignar categorías de precio:

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

df['PriceCategory'] = df['UnitPrice'].apply(categorize_price)
print(df[['UnitPrice', 'PriceCategory']].head(10))

Con esta función, el UnitPrice se categoriza en 'High', 'Medium' o 'Low' basado en su valor. Esto ayuda a segmentar fácilmente los datos para análisis más detallados.

Transformar y manipular datos con Pandas no solo mejora el análisis, sino que también facilita la comprensión del contenido. Experimenta y prueba nuevas formas de enriquecer el dataset. ¿Qué otras columnas podrían agregar valor a tu proyecto? ¡La exploración sigue abierta!