CodeGym /Cursos /Python SELF ES /Exportar datos filtrados y procesados a Excel

Exportar datos filtrados y procesados a Excel

Python SELF ES
Nivel 28 , Lección 4
Disponible

Imagina que eres un investigador espacial, y los datos son tu mapa del cielo estrellado. Es voluminoso, confuso y absolutamente necesario. Después de un cuidadoso filtrado y análisis, estos datos necesitan estar organizados y guardados en un formato fácil de leer. Y aquí entra en escena nuestro héroe: la exportación de datos a Excel. Esto te permite compartir tus hallazgos con colegas o preparar informes para reuniones importantes. En un mundo donde los datos son el nuevo petróleo, la habilidad de crear informes en unas pocas líneas de código puede valer un millón.

1. Aspectos básicos de la exportación de datos

Exportar datos a Excel no es simplemente traducir de un formato a otro. Es una oportunidad para personalizar los informes de tal forma que sean cómodos y fáciles de entender. Como decía un amigo programador: "Python puede hacer magia, pero incluso Harry Potter necesita una varita". En nuestro caso, la varita es el método to_excel de la librería pandas.

Conceptos básicos de to_excel

Vamos a empezar con un ejemplo simple de exportar datos desde un DataFrame a un archivo de Excel. Supongamos que tenemos un DataFrame con datos de los registros de participantes de un maratón:

Python

import pandas as pd

# Creamos un DataFrame
data = {
    'Nombre': ['Anna', 'Boris', 'Víctor', 'Galina'],
    'Edad': [29, 34, 22, 28],
    'Ciudad': ['Moscú', 'San Petersburgo', 'Kazán', 'Novosibirsk'],
    'Tiempo de llegada': ['03:15:30', '03:45:10', '03:25:45', '03:50:05']
}

df = pd.DataFrame(data)

# Exportamos el DataFrame a Excel
df.to_excel('marathon_participants.xlsx', index=False)

En este ejemplo creamos un DataFrame simple y lo exportamos al archivo marathon_participants.xlsx. Observa que configuramos el parámetro index=False, para no exportar los índices del DataFrame a Excel si no son necesarios.

Añadiendo formato y estilos

Vamos al siguiente nivel de habilidad: añadir estilo. Porque, ¿quién dijo que los datos no pueden ser elegantes? Con la librería pandas y openpyxl, es fácil dar formato a las tablas y añadir estilos.

Python

import pandas as pd
from openpyxl import Workbook

# Creamos un DataFrame
data = {
    'Nombre': ['Anna', 'Boris', 'Víctor', 'Galina'],
    'Edad': [29, 34, 22, 28],
    'Ciudad': ['Moscú', 'San Petersburgo', 'Kazán', 'Novosibirsk'],
    'Tiempo de llegada': ['03:15:30', '03:45:10', '03:25:45', '03:50:05']
}

df = pd.DataFrame(data)

# Guardamos en Excel con formato
with pd.ExcelWriter('styled_marathon.xlsx', engine='openpyxl') as writer:
    df.to_excel(writer, index=False, sheet_name='Participantes')
    worksheet = writer.sheets['Participantes']
    for col in worksheet.columns:
        max_length = 0
        column = col[0].column_letter # obtenemos la letra del columna
        for cell in col:
            try:
                if len(str(cell.value)) > max_length:
                    max_length = len(cell.value)
            except:
                pass
        adjusted_width = (max_length + 2) * 1.2
        worksheet.column_dimensions[column].width = adjusted_width

En este ejemplo no solo exportamos datos, sino que también ajustamos el ancho de las columnas al contenido, para que se vean más ordenadas en Excel. Usamos openpyxl para acceder a la hoja y aplicar el estilo.

Trabajando con múltiples hojas

Crear informes con múltiples hojas puede sonar como una tarea para Superman, pero en realidad es bastante simple. Imagina que quieres almacenar datos de diferentes competiciones anuales en hojas separadas.

Python

import pandas as pd

# Datos para diferentes años
data_2022 = {
    'Nombre': ['Dmitri', 'Elena'],
    'Edad': [30, 29],
    'Ciudad': ['Omsk', 'Vladivostok'],
    'Tiempo de llegada': ['03:20:05', '03:35:40']
}

data_2023 = {
    'Nombre': ['Igor', 'Katerina'],
    'Edad': [31, 27],
    'Ciudad': ['Cheliábinsk', 'Ekaterimburgo'],
    'Tiempo de llegada': ['03:29:10', '03:40:20']
}

df_2022 = pd.DataFrame(data_2022)
df_2023 = pd.DataFrame(data_2023)

# Guardamos los datos en hojas separadas
with pd.ExcelWriter('marathon_data.xlsx') as writer:
    df_2022.to_excel(writer, sheet_name='2022', index=False)
    df_2023.to_excel(writer, sheet_name='2023', index=False)

Este código crea el archivo marathon_data.xlsx con dos hojas, que contienen datos de diferentes años. Esto es muy útil para separar datos por años, proyectos o cualquier otra categoría.

2. Siempre hay algo que mejorar

Trata de pensar cómo la automatización de la exportación puede integrarse en procesos más complejos de tu proyecto. ¿Quizá quieras añadir la creación automática de gráficos después de la exportación? ¿O integrar los informes con una interfaz web para un acceso más cómodo?

En cualquier caso, exportar datos a Excel es solo el comienzo del camino para crear informes bonitos e informativos, que te convertirán en la estrella del análisis en tu lugar de trabajo o estudios.

Ahora tienes las herramientas para automatizar la exportación de datos, y sabes cómo hacer que tus informes en Excel sean más legibles y presentables. ¡Así que adelante, y que tus datos siempre trabajen para ti!

1
Cuestionario/control
Escritura de consultas, nivel 28, lección 4
No disponible
Escritura de consultas
Escritura de consultas
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION