Navegando por los formatos de datos con Pandas para principiantes

Navegando formatos datos Pandas principiantes

Introducción

Pandas es más que solo un nombre, es una abreviatura de “panel data” (datos de panel). Ahora, ¿qué significa exactamente eso? Utiliza los formatos de datos con pandas en economía y estadística. Se refiere a conjuntos de datos estructurados que contienen observaciones a lo largo de varios períodos para diferentes entidades o sujetos.

Hoy en día, las personas suelen almacenar datos en diferentes formatos de archivo y deben convertirlos en formatos accesibles para cargarlos. Este es el primer paso de cualquier proyecto de ciencia de datos y será el tema principal de discusión de este artículo.

Este artículo fue publicado como parte del Data Science Blogathon.

Los Pilares Detrás del Éxito de Pandas en la Ciencia de Datos

  • Manejo de Datos sin Esfuerzo: Una característica destacada de pandas es su capacidad para manejar tareas complejas de datos fácilmente. Lo que solía ser código complejo ahora se simplifica mediante las funciones concisas de pandas.
  • Armonía Perfecta de Datos: Pandas se integra perfectamente en el panorama más amplio de la ciencia de datos al trabajar con NumPy, Matplotlib, SciPy, Scikit Learn y otras bibliotecas avanzadas de manera eficiente.
  • Adaptabilidad en la Recopilación de Datos: Pandas tiene la flexibilidad para recopilar datos de diversas fuentes. Ya sea archivos CSV, hojas de cálculo de Excel, JSON o bases de datos SQL, pandas lo maneja todo. Esta adaptabilidad simplifica la importación de datos, evitándonos el dolor de cabeza de las conversiones de formato.

En pocas palabras, el éxito de pandas se debe a sus estructuras fáciles de usar, su habilidad para manejar datos, su integración con otras herramientas y su capacidad para manejar diversas fuentes de datos. Esto permite a los entusiastas de los datos aprovechar el potencial oculto en sus conjuntos de datos, transformando el panorama de la ciencia de datos.

¿Cómo Mantiene Pandas los Datos Organizados?

Imagina a pandas como tu organizador de datos. Pandas maneja los datos utilizando dos estructuras increíbles: “Series” y “DataFrame”. ¡Imagínalos como los superhéroes del almacenamiento de datos!

  • Serie: Piensa en una Serie como un camino recto donde los datos pueden estar. Es como una línea de información que puede contener desde números hasta palabras. Cada dato tiene una etiqueta especial llamada índice. Imagínalo como una etiqueta de identificación, te ayuda a encontrar datos fácilmente. Las Series son muy útiles cuando se trata de una sola columna de datos. Puedes hacer cálculos y análisis con ellas.

  • DataFrame: Un DataFrame es como una mini hoja de cálculo o una tabla elegante. Tiene filas y columnas como en Excel. Cada columna es una Serie. Entonces, puedes tener una columna “Números”, una columna “Nombres”, y así sucesivamente. Los DataFrames son el paquete completo. Son increíbles para manejar todo tipo de datos, ya sean números, palabras, lo que sea. Además, puedes hacer cosas geniales como buscar información, organizar datos y realizar cambios. Recuerda, ¡cada columna en un DataFrame es una serie!

Habiendo cubierto los fundamentos teóricos, es hora de arremangarnos y sumergirnos en la programación práctica.

Instalación e Importación de Pandas

'''
Puedes escribir lo siguiente en tu símbolo del sistema o terminal
para instalar pandas en tu sistema
'''
pip install pandas

# Para instalar pandas en tu entorno conda, usa lo siguiente

conda install pandas

# Los usuarios de jupyter notebook pueden usar lo siguiente

!pip install pandas

Ahora, al igual que numpy se abrevia como np y seaborn como sns, pandas se abrevia convencionalmente como pd. Eres libre de usar cualquier otra abreviatura que elijas, y esto no afectará la ejecución del código de ninguna manera. Sin embargo, ‘pd’ es la abreviatura común y su uso mejora la legibilidad del código. En este artículo, utilizaremos la abreviatura estándar ’pd’ para importar pandas.

#importar pandas
import pandas as pd

El siguiente código muestra cómo crear una serie con pandas.

edades = pd.Series([22, 35, 58], name="Edad")

print(edades)

Una Serie de pandas no tiene etiquetas de columna, ya que es solo una columna de un DataFrame. Una Serie sí tiene etiquetas de fila.

Ahora aprendamos el uso de un dataframe con un ejemplo. Quiero almacenar datos de pasajeros en el Titanic. Para el número de pasajeros, conozco el nombre (caracteres), la edad (enteros) y el sexo (hombre/mujer).

df = pd.DataFrame(
    {
        "Nombre": [
            "Braund, Sr. Owen Harris",
            "Allen, Sr. William Henry",
            "Bonnell, Sra. Elizabeth",
        ],
        "Edad": [22, 35, 58],
        "Sexo": ["hombre", "hombre", "mujer"],
    }
)
print(df)

Esto devuelve el diccionario como un objeto DataFrame. Además, observe cómo se escribe DataFrame al llamar a la función. Puede encontrar todos estos ejemplos aquí.

Ahora sabes cómo cargar Python y comenzar a trabajar con él. Pero espera, al lidiar con proyectos del mundo real, es probable que tus datos tengan muchas más filas y columnas. Escribirlos manualmente como diccionarios sería una maratón. Ahí es donde entra la magia de importar datos en pandas. ¿Y adivina qué? ¡Esto nos lleva directamente al centro de atención de nuestra discusión hoy!

Archivos CSV

Los archivos CSV (valores separados por comas) tienen una importancia significativa en la ciencia de datos debido a su amplio uso para almacenar datos tabulares. Son una opción universal para el intercambio de datos debido a su simplicidad y compatibilidad en diversas plataformas y aplicaciones. Pandas en Python ofrece una solución elegante para leer archivos CSV, permitiendo a los científicos de datos cargar, manipular y analizar datos sin esfuerzo. Este proceso simplificado ahorra tiempo, garantiza la integridad de los datos y proporciona un marco estructurado para la exploración y extracción de información, convirtiendo a pandas en una herramienta vital en el kit del científico de datos. A medida que te embarcas en el dominio de la ciencia de datos, los archivos CSV serán tus fieles compañeros.

Para leer archivos CSV, utilizamos la función read_csv() que toma una ruta hacia un archivo CSV y lee los datos en un objeto DataFrame de pandas.

# Importar la biblioteca pandas
import pandas as pd

# Leer datos de un archivo CSV llamado 'datos_ejemplo.csv'
# El DataFrame resultante se almacenará en la variable 'df_csv'
df_csv = pd.read_csv('datos_ejemplo.csv')

Tabla

Una tabla es una disposición estructurada dentro del contexto de datos donde la información se organiza en filas y columnas. Cada fila representa un registro o entrada distinta, mientras que cada columna corresponde a un atributo o característica específica.

La función read_table() en pandas facilita la conversión de datos tabulares de un archivo de texto en un DataFrame de pandas. Cuando se invoca, abre el archivo designado en modo de lectura y procesa secuencialmente cada línea como una fila de datos. De forma predeterminada, la función asume que los caracteres de tabulación separan las columnas. Sin embargo, puedes personalizar el delimitador utilizando el parámetro sep para adaptarlo a diferentes formatos. La función lee y procesa los datos, construyendo un DataFrame que traduce las filas en filas del DataFrame y transforma los valores de cada fila en las columnas del DataFrame correspondientes. Una vez que la función procesa todo el archivo, devuelve el DataFrame resultante que contiene los datos tabulares importados. Esto simplifica la conversión de datos basados en texto en un formato estructurado de DataFrame.

# Importar la biblioteca pandas
import pandas as pd

# Leer datos tabulares de 'datos.txt' utilizando una tabulación como delimitador
df = pd.read_table('datos.txt', sep='\t')

# Imprimir el DataFrame resultante
print(df)

Archivos de Excel

Excel es uno de los formatos de almacenamiento de datos más comunes. Se pueden cargar rápidamente en el dataframe de pandas con la función read_excel(). Esta función carga sin problemas varios formatos de archivos de Excel, desde xls hasta xlsx, e incluso extensiones xlsb, odf, ods y odt. Ya sea desde tu disco local o desde una URL, esta función te permite leer una hoja o una lista de hojas.

# Importar la biblioteca pandas
import pandas as pd

# Leer datos de un archivo de Excel llamado 'ejemplo.xlsx' y de la 'Hoja1'
# El DataFrame resultante se almacenará en la variable 'df_excel'
df_excel = pd.read_excel('ejemplo.xlsx', sheet_name='Hoja1')

El parámetro sheet_name te ayuda a elegir en qué hoja de Excel deseas trabajar en el archivo de Excel.

sheet_name: str, int, list, or None, default 0

Las cadenas se utilizan para los nombres de las hojas. Los enteros se utilizan en las posiciones de las hojas indexadas en cero (las hojas de gráficos no se cuentan como una posición de hoja). Las listas de cadenas/enteros se utilizan para solicitar varias hojas. Especifique None para obtener todas las hojas de cálculo.

Casos disponibles:

Por defecto 0: 1ª hoja como DataFrame

1: 2ª hoja como DataFrame

“Sheet1”: Cargar hoja con el nombre “Sheet1”

[0, 1, “Sheet5”]: Cargar la primera, segunda y hoja con el nombre “Sheet5” como un diccionario de DataFrame

None: Todas las hojas de cálculo

JSON

Los JSON (JavaScript Object Notation) se utilizan ampliamente como formato de archivo para almacenar e intercambiar datos. Poseen un diseño que les permite ser legibles tanto para humanos como para máquinas, lo que los hace versátiles para diversas aplicaciones. Debido a su simplicidad y flexibilidad, los JSON se utilizan con frecuencia en API web, archivos de configuración y almacenamiento de datos. En ciencia de datos, los JSON son valiosos para manejar datos estructurados e integrarlos en diversas herramientas analíticas, incluido pandas. Se pueden leer en el marco de pandas utilizando la función read_json().

# Importar la biblioteca pandas
import pandas as pd

# Leer datos de un archivo JSON llamado 'data.json'
# El DataFrame resultante se almacenará en la variable 'df_json'
df_json = pd.read_json('data.json')

SQL

Conectar pandas a una base de datos SQL desbloquea un mundo de posibilidades. Le permite unir de manera fluida los datos estructurados almacenados en bases de datos con las potentes capacidades de manipulación de datos de pandas. Al establecer esta conexión, puede aprovechar las consultas SQL para extraer los datos necesarios y luego transformarlos sin esfuerzo en DataFrames de pandas. Esta sinergia le permite analizar, visualizar y manipular datos SQL utilizando la sintaxis fácil de usar de pandas y la amplia gama de funciones de manipulación de datos. Conectar pandas a SQL une la brecha entre la consulta de bases de datos y el análisis exploratorio de datos, lo que permite decisiones basadas en datos más eficientes e inteligentes.

Existen rutas separadas para diferentes bases de datos a nivel empresarial. En este artículo, trabajará con la base de datos sqlite3 compatible con Python, y los datos se pueden leer utilizando la función read_sql().

# Importar las bibliotecas requeridas
import sqlite3
import pandas as pd

# Establecer una conexión a una base de datos SQLite llamada 'database.db'
conn = sqlite3.connect('database.db')

# Definir una consulta SQL para seleccionar todos los datos de una tabla llamada 'table_name'
query = "SELECT * FROM table_name"

# Leer datos utilizando la consulta SQL desde la conexión, creando un DataFrame 'df_sql'
df_sql = pd.read_sql(query, conn)

HTML

Leer tablas HTML en pandas abre una puerta de entrada para extraer datos estructurados de páginas web. Es como acceder a una fuente de información. A menudo, los sitios web presentan datos en forma de tablas, perfectas para el análisis. Utilizando la función read_html() de pandas, puede extraer y convertir fácilmente estas tablas en DataFrames, evitando la extracción manual. Esta combinación dinámica de web scraping y conversión de datos le permite integrar sin problemas datos web en sus flujos de trabajo analíticos, expandiendo su universo de datos más allá de los archivos locales y las bases de datos.

# Importar la biblioteca pandas
import pandas as pd

# Definir la URL que contiene una tabla HTML
url = 'https://example.com/table.html'

# Leer tablas HTML desde la URL proporcionada
# La lista resultante de tablas se almacena en la variable 'tables'
tables = pd.read_html(url)

# Extraer la primera tabla de la lista y almacenarla en el DataFrame 'df_html'
df_html = tables[0]

Portapapeles

La función read_clipboard() de Pandas ofrece una forma conveniente de importar datos directamente desde el portapapeles de su computadora a un DataFrame. Para usarlo, copie los datos tabulares deseados en el portapapeles desde fuentes como páginas web o hojas de cálculo. Luego, en su entorno de Python (como un cuaderno Jupyter o una terminal interactiva), llame a la función read_clipboard(). Pandas interpretará los datos copiados como una tabla y los convertirá en un DataFrame, con el que luego podrá trabajar y analizar. Esta función es conveniente cuando desea importar datos rápidamente sin guardarlos como un archivo primero. Sin embargo, es esencial asegurarse de que los datos copiados estén estructurados correctamente en un formato tabular para una interpretación precisa por parte de pandas.

# Importar la biblioteca pandas
import pandas as pd

# Leer datos tabulares del portapapeles y crear un DataFrame 'df_clipboard'
df_clipboard = pd.read_clipboard()

HDF

La lectura de archivos HDF5 en pandas mejora la gestión de datos para conjuntos de datos grandes y complejos. El almacenamiento eficiente de HDF5, su estructura jerárquica y su soporte para diversos tipos de datos lo convierten en una opción robusta. Sus capacidades de compresión optimizan el espacio de almacenamiento, lo cual es crucial para datos extensos. Al integrar HDF5 con pandas, aprovechas las potentes herramientas de manipulación de datos de este último, lo que permite un análisis y exploración fluidos de conjuntos de datos complejos y grandes. Esta sinergia permite a los científicos de datos e investigadores manejar datos a gran escala de manera eficiente, abriendo oportunidades para análisis sofisticados y descubrimientos interesantes. Utiliza la función read_hdf() aquí.

# Importa la biblioteca pandas
import pandas as pd

# Lee los datos de un archivo HDF5 llamado 'data.h5'
df_hdf = pd.read_hdf('data.h5', key='mydata')

# Imprime el DataFrame resultante
print(df_hdf)

Parquet

La lectura de archivos PARQUET en pandas ofrece una solución versátil de almacenamiento y análisis de datos. El formato de almacenamiento columnar de PARQUET optimiza la compresión de datos, minimizando el espacio de almacenamiento y mejorando la velocidad de acceso a los datos. Con la capacidad de pandas para leer archivos PARQUET, puedes procesar eficientemente conjuntos de datos grandes, lo que lo hace ideal para escenarios de big data. La compatibilidad del formato con varios tipos de datos garantiza la integridad de los datos y permite una integración fluida con las herramientas de manipulación de datos de pandas. Al aprovechar los beneficios de PARQUET a través de la función read_parquet(), puedes manejar datos extensos de manera eficiente, acelerando flujos de trabajo analíticos y descubriendo ideas dentro de conjuntos de datos vastos.

# Importa la biblioteca pandas
import pandas as pd

# Lee los datos de un archivo PARQUET llamado 'data.parquet'
df_parquet = pd.read_parquet('data.parquet')

# Imprime el DataFrame resultante
print(df_parquet)

Feather

La lectura de archivos Feather en pandas presenta una vía de intercambio y análisis de datos de alto rendimiento. El formato de almacenamiento binario de Feather optimiza tanto la velocidad de lectura como de escritura, lo cual es ideal para intercambiar datos entre lenguajes. Al aprovechar la función read_feather() para leer archivos Feather, puedes cargar y analizar rápidamente conjuntos de datos grandes, lo que lo hace adecuado para tareas intensivas en datos. La simplicidad del formato y su enfoque en la velocidad permiten una integración fluida con las funciones de manipulación de datos de pandas. A través de esta combinación, desbloqueas el potencial para manejar rápidamente conjuntos de datos sustanciales, acelerando tus flujos de trabajo de análisis de datos y extrayendo ideas eficientemente.

# Importa la biblioteca pandas
import pandas as pd

# Lee los datos de un archivo Feather llamado 'data.feather'
df_feather = pd.read_feather('data.feather')

# Imprime el DataFrame resultante
print(df_feather)

Conclusión

La habilidad para cargar diversos formatos de archivo en pandas es crucial para los analistas y científicos de datos. Permite la integración sin esfuerzo de datos desde fuentes como CSV, Excel, JSON y SQL, amplificando la capacidad de extraer ideas. Esta versatilidad en la recolección de datos amplía el alcance de los análisis completos, proporcionando un conjunto de habilidades vital para la toma de decisiones informadas y efectivas basadas en datos. Y esto es lo que has aprendido en este artículo.

Los puntos clave de este artículo sobre formatos de datos con pandas incluyen:

  • Introducción a pandas y por qué es tan popular en la industria de la ciencia de datos.
  • Las estructuras de datos de pandas son “Series” y “DataFrames”.
  • Cómo cargar los datos desde formatos de archivo como csv, excel, json, etc., en el DataFrame de pandas.

Existen otros formatos de archivo como archivos de ancho fijo (fwf) y SAS, y también se pueden leer de manera efectiva en pandas. Te recomiendo que revises la documentación para una mejor comprensión.

Preguntas frecuentes

Los medios mostrados en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

¿Reemplazará la IA a la humanidad?

Descubramos si la inteligencia artificial es realmente inteligente y tiene el potencial de superar a los humanos.

Inteligencia Artificial

Investigadores de UCL y Google proponen AudioSlots un modelo generativo centrado en slots para la separación de fuentes ciegas en el dominio de audio.

El uso de redes neuronales en arquitecturas que operan en datos estructurados en conjuntos y aprenden a mapear desde ...

Inteligencia Artificial

Hacia la IA generativa para la arquitectura del modelo

La revolución del transformador La atención es todo lo que necesitas ha tenido un profundo efecto en el diseño de las...

Inteligencia Artificial

Los satélites más antiguos de observación de la Tierra de NOAA obtienen 'vida prolongada

La Administración Nacional Oceánica y Atmosférica utilizará un sistema basado en la nube para extender la vida de los...