Poder de Pandas

Introducción

Esta conferencia trata sobre una de las herramientas más poderosas en el ecosistema de Python para análisis de datos: Pandas. En esta conferencia, nos embarcaremos en un viaje para explorar los entresijos de Pandas, comprendiendo sus capacidades para manejar, manipular y analizar datos de manera efectiva.

Entendiendo los Conceptos Básicos de Pandas

  • Pandas, construido sobre NumPy, proporciona estructuras de datos y funciones para trabajar con datos estructurados.

  • Componentes clave: Serie (arreglo unidimensional etiquetado) y DataFrame (estructura de datos etiquetada bidimensional).

  • Importando Pandas y cargando datos: import pandas as pd y pd.read_csv().

Análisis Exploratorio de Datos (EDA) con Pandas

  • Verificando las dimensiones de los datos: df.shape.

  • Obteniendo estadísticas resumidas: df.describe().

  • Examinando tipos de datos y valores faltantes: df.info().

Limpieza y Transformación de Datos

  • Renombrando columnas para mayor claridad: df.rename(columns={'old_name': 'new_name'}, inplace=True).

  • Manejando datos faltantes: df.dropna(), df.fillna().

  • Conversión de tipos de datos: df.astype().

Manipulación y Agregación de Datos

  • Seleccionando columnas y filas: df['column_name'], df.loc[], df.iloc[].

  • Filtrando datos: df.query().

  • Agrupación y agregación de datos: df.groupby().agg().

Visualización de Datos con Pandas

  • Utilizando la integración de Matplotlib y Seaborn para visualizaciones.

  • Gráficos básicos: df.plot().

  • Gráficos de barras, histogramas, diagramas de caja: df.plot(kind='bar'), df.plot(kind='hist'), df.plot(kind='box').

Técnicas Avanzadas de Análisis de Datos

  • Análisis de series temporales: Manejo de datos de fecha y hora con Pandas.

  • Fusión y unión de conjuntos de datos: pd.merge(), pd.concat().

  • Manejo de duplicados: df.drop_duplicates().

Aplicaciones del Mundo Real y Estudios de Caso

  • Análisis de datos de atención médica: Exploración de tiempos de espera de pacientes, distribución de servicios y tendencias geográficas.

  • Análisis de datos financieros: Análisis del mercado de valores, gestión de carteras.

  • Análisis de datos en redes sociales: Análisis de sentimientos, detección de tendencias.

Mejores Prácticas y Optimización del Rendimiento

  • Carga y almacenamiento eficientes de datos: Utilización de fragmentación, optimización de tipos de datos.

  • Operaciones vectorizadas: Aprovechamiento de operaciones vectorizadas de Pandas para cálculos más rápidos.

  • Gestión de memoria: Reducción del uso de memoria para conjuntos de datos grandes.

Ejemplo

  • Aquí hay algo que puedes desarrollar usando Pandas. Este ejemplo utiliza datos de productos de helado de Beijing. Los datos se leen de un archivo CSV y luego se visualizan usando matplotlib. El usuario puede seleccionar un sabor de helado y el gráfico mostrará la calificación del sabor seleccionado.

import js
import pandas as pd
import matplotlib.pyplot as plt

from pyodide.http import open_url
from pyodide.ffi import create_proxy

url = (
    "https://raw.githubusercontent.com/Cheukting/pyscript-ice-cream/main/bj-products.csv"
)
ice_data = pd.read_csv(open_url(url))

current_selected = []
flavour_elements = js.document.getElementsByName("flavour")

def plot(data):
    plt.rcParams["figure.figsize"] = (22,20)
    fig, ax = plt.subplots()
    bars = ax.barh(data["name"], data["rating"], height=0.7)
    ax.bar_label(bars)
    plt.title("Rating of ice cream flavours of your choice")
    display(fig, target="graph-area", append=False)

def select_flavour(event):
    for ele in flavour_elements:
        if ele.checked:
            current_selected = ele.value
            break
    if current_selected == "ALL":
        plot(ice_data)
    else:
        filter = ice_data.apply(lambda x: ele.value in x["ingredients"], axis=1)
        plot(ice_data[filter])

ele_proxy = create_proxy(select_flavour)

for ele in flavour_elements:
    if ele.value == "ALL":
        ele.checked = True
        current_selected = ele.value
    ele.addEventListener("change", ele_proxy)

plot(ice_data)

Selector de Helado packages = ["matplotlib", "pandas"] import js import pandas as pd import matplotlib.pyplot as plt from pyodide.http import open_url from pyodide.ffi import create_proxy url = ( "https://raw.githubusercontent.com/Cheukting/pyscript-ice-cream/main/bj-products.csv" ) ice_data = pd.read_csv(open_url(url)) current_selected = [] flavour_elements = js.document.getElementsByName("flavour") def plot(data): plt.rcParams["figure.figsize"] = (22,20) fig, ax = plt.subplots() bars = ax.barh(data["name"], data["rating"], height=0.7) ax.bar_label(bars) plt.title("Rating of ice cream flavours of your choice") display(fig, target="graph-area", append=False) def select_flavour(event): for ele in flavour_elements: if ele.checked: current_selected = ele.value break if current_selected == "ALL": plot(ice_data) else: filter = ice_data.apply(lambda x: ele.value in x["ingredients"], axis=1) plot(ice_data[filter]) ele_proxy = create_proxy(select_flavour) for ele in flavour_elements: if ele.value == "ALL": ele.checked = True current_selected = ele.value ele.addEventListener("change", ele_proxy) plot(ice_data)
Seleccione su sabor de 🍨:
You have attempted of activities on this page