pandas

Pandas

Tutorial Pandas: Entrada de datos externos y salida de datos con Pandas

Pandas: Aprende a cargar y exportar datos en CSV, Excel, SQL, JSON, Parquet, API y HTML. Optimiza tu trabajo con DataFrames.

Formas de cargar datos externos en Pandas

Pandas proporciona múltiples métodos para cargar datos externos en un DataFrame. 

A continuación, se detallan las formas más comunes y recomendadas según la documentación oficial de Pandas:

  • Cargar datos desde un archivo CSV: Pandas incluye la función read_csv() para leer archivos CSV. Es posible especificar parámetros como el delimitador, la codificación, las columnas a utilizar, entre otros.
import pandas as pd

df = pd.read_csv('ruta/al/archivo.csv', delimiter=',', encoding='utf-8')

Al leer un archivo CSV que contiene caracteres especiales, el parámetro encoding de la función read_csv() permite especificar la codificación de caracteres, garantizando así una correcta interpretación de los datos. Algunas codificaciones comunes son:

  1. 'utf-8': Codificación universal que soporta la mayoría de los caracteres.
  2. 'latin-1': También conocida como ISO-8859-1, es común en archivos generados en sistemas europeos.
  3. 'ascii': Codificación básica que solo soporta caracteres en inglés.
  4. 'windows-1252': Codificación de Windows utilizada en documentos de Microsoft.
  • Cargar datos desde un archivo Excel: Con read_excel(), Pandas permite leer datos desde archivos Excel. Es posible seleccionar hojas específicas y manejar diferentes formatos de archivo (xls, xlsx). Es posible seleccionar hojas específicas utilizando el parámetro sheet_name, el cual acepta tanto el nombre de la hoja (como una cadena de texto) como su índice (un número entero donde 0 es la primera hoja). Si un archivo Excel contiene múltiples hojas, puedes cargar varias hojas al mismo tiempo especificando una lista de nombres de hojas o utilizar el valor None para cargar todas las hojas en un diccionario de DataFrames.
df = pd.read_excel('ruta/al/archivo.xlsx', sheet_name='Hoja1')
  • Cargar datos desde una base de datos SQL: Pandas ofrece la función read_sql() para ejecutar consultas SQL directamente y cargar los resultados en un DataFrame. Es necesario tener una conexión establecida con la base de datos.
from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://usuario:contraseña@localhost/nombre_base_datos')
df = pd.read_sql('SELECT * FROM tabla', con=engine)
  • Cargar datos desde un archivo JSON: La función read_json() permite cargar datos desde un archivo JSON. Es posible especificar el tipo de orientación de los datos, como 'records' o 'index'. La orientación por defecto es 'records', que organiza los datos como una lista de registros.
df = pd.read_json('ruta/al/archivo.json', orient='records')
  • Cargar datos desde un archivo Parquet: Con read_parquet(), Pandas facilita la lectura de archivos Parquet, que son eficientes en términos de almacenamiento y velocidad de lectura.
df = pd.read_parquet('ruta/al/archivo.parquet')
  • Cargar datos desde una API web: Pandas puede manejar la respuesta de una API web utilizando la biblioteca requests. Los datos JSON obtenidos pueden ser convertidos en un DataFrame.
import requests

response = requests.get('https://api.ejemplo.com/data')
data_json = response.json()
df = pd.DataFrame(data_json)
  • Cargar datos desde una tabla HTML: Utilizando read_html(), Pandas puede extraer tablas de datos directamente desde una página web. Esta función devuelve una lista de DataFrames, uno por cada tabla encontrada.
url = 'https://www.ejemplo.com/tables.html'
dfs = pd.read_html(url)
df = dfs[0]  # Asumiendo que se necesita la primera tabla

Cada uno de estos métodos ofrece múltiples parámetros adicionales para personalizar la carga de datos según las necesidades específicas del proyecto. La elección del método adecuado depende del formato de los datos de origen y de los requisitos de procesamiento posteriores.

Formas de exportar un DataFrame

Pandas proporciona diversas funcionalidades para exportar un DataFrame a diferentes formatos de archivo, lo que facilita la integración con otras aplicaciones y sistemas. A continuación, se describen las formas más comunes y recomendadas para exportar un DataFrame según la documentación oficial de Pandas en 2024:

  • Exportar a un archivo CSV: Utilizando la función to_csv(), se puede exportar un DataFrame a un archivo CSV. Es posible especificar parámetros como el delimitador, la codificación y si se desea incluir el índice. Por defecto, Pandas exporta el índice del DataFrame, pero si no deseas incluirlo en el archivo, debes establecer el parámetro index en False.
import pandas as pd

# Crear un DataFrame de ejemplo
df = pd.DataFrame({
    'Columna1': [1, 2, 3],
    'Columna2': ['A', 'B', 'C']
})

# Exportar a CSV sin incluir el índice
df.to_csv('ruta/al/archivo.csv', sep=',', encoding='utf-8', index=False)
  • Exportar a un archivo Excel: La función to_excel() permite exportar un DataFrame a un archivo Excel. Se pueden especificar la hoja de destino y otros parámetros como la inclusión del índice.
# Exportar a Excel
df.to_excel('ruta/al/archivo.xlsx', sheet_name='Hoja1', index=False)

Nota: Para exportar a archivos Excel en formato .xlsx, es necesario tener instalada la librería openpyxl, ya que Pandas utiliza esta librería como motor subyacente para manejar archivos Excel. Si al intentar exportar un DataFrame a Excel recibes un error indicando que no se encuentra el módulo openpyxl, puedes solucionarlo instalando la librería con el siguiente comando:

pip install openpyxl
  • Exportar a una base de datos SQL: Con to_sql(), es posible escribir un DataFrame en una tabla de una base de datos SQL. Es necesario establecer una conexión con la base de datos.
from sqlalchemy import create_engine

# Crear una conexión a la base de datos
engine = create_engine('mysql+pymysql://usuario:contraseña@localhost/nombre_base_datos')

# Exportar a SQL
df.to_sql('nombre_tabla', con=engine, if_exists='replace', index=False)
  • Exportar a un archivo JSON: Utilizando la función to_json(), se puede exportar un DataFrame a un archivo JSON. Es posible especificar la orientación de los datos, como 'records' o 'index'.
# Exportar a JSON
df.to_json('ruta/al/archivo.json', orient='records')
  • Exportar a un archivo Parquet: La función to_parquet() permite exportar un DataFrame a un archivo Parquet, que es eficiente en términos de almacenamiento y velocidad de lectura.
# Exportar a Parquet
df.to_parquet('ruta/al/archivo.parquet')
  • Exportar a HTML: Con to_html(), se puede convertir un DataFrame en una tabla HTML, lo que facilita la visualización de datos en páginas web.
# Exportar a HTML
df.to_html('ruta/al/archivo.html', index=False)
  • Exportar a un archivo HDF5: Utilizando la función to_hdf(), es posible exportar un DataFrame a un archivo HDF5, adecuado para grandes volúmenes de datos.
# Exportar a HDF5
df.to_hdf('ruta/al/archivo.h5', key='df', mode='w')

Nota: Para exportar a archivos HDF5, es necesario tener instalada la librería PyTables (tables). Si al intentar exportar un DataFrame a HDF5 recibes un error indicando que falta la dependencia PyTables, puedes solucionarlo instalando la librería con el siguiente comando:

pip install tables

Cada uno de estos métodos ofrece múltiples parámetros adicionales para personalizar la exportación de datos según las necesidades específicas del proyecto. La elección del método adecuado depende del formato de destino y de los requisitos de integración con otras herramientas y sistemas.

Certifícate en Pandas con CertiDevs PLUS

Ejercicios de esta lección Entrada de datos externos y salida de datos con Pandas

Evalúa tus conocimientos de esta lección Entrada de datos externos y salida de datos con Pandas con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de Pandas

Accede a todas las lecciones de Pandas y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Certificados de superación de Pandas

Supera todos los ejercicios de programación del curso de Pandas y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  • Cargar datos desde archivos CSV en Pandas.

  • Leer datos desde archivos Excel.

  • Conectar y extraer datos desde bases de datos SQL.

  • Cargar datos desde archivos JSON y Parquet.

  • Obtener datos desde APIs web y tablas HTML.

  • Exportar DataFrames a múltiples formatos como CSV, Excel, SQL, JSON, Parquet, HTML y HDF5.

  • Configurar parámetros adicionales para la personalización de carga y exportación de datos.