Ingerir datos con Python | audacia

Una habilidad importante para cualquier ingeniero de datos es la ingesta de datos con Python. Python se ha convertido en uno de los lenguajes más populares entre los científicos de datos, lo que significa que un ingeniero de datos que desarrolle habilidades con este lenguaje será un activo para su equipo. La biblioteca de Python Pandas contiene una amplia variedad de funciones para manipular datos, incluido un amplio conjunto de herramientas para ingerir datos.

En este artículo, revisaremos lo que significa ingerir datos y luego cómo manejar varios formatos de datos al ingerir datos con Python usando Pandas.

Contenido

¿Qué es la ingesta de datos?

En términos generales, la ingestión de datos es acceder y transportar datos desde una fuente o fuentes a un destino. En el caso de un proceso de extracción, transformación y carga (ETL), la ingesta de datos generalmente se asocia con el paso de extracción.

Gráfico de Ladrillos de datos

El objetivo en este caso es el paso Transformar, donde un conjunto de estructuras de datos dentro de Python contienen los datos que se manipulan. La transformación de datos juega un papel fundamental en el éxito de cualquier proyecto de ciencia de datos, por lo que la ingesta de datos de manera eficiente y precisa sienta una base sólida para el éxito.

Cómo ingerir datos con Python usando Pandas.

Una idea clave para la ingesta de datos con Python es reconocer que los datos de origen vienen en varios formatos de origen, como archivos CSV, Excel, JSON y Parquet, así como bases de datos SQL. Una razón para usar una biblioteca como pandas es que, si bien los formatos pueden variar considerablemente, la API de IO hace un excelente trabajo al estandarizar la sintaxis.

El formato genérico para las diversas herramientas de ingesta de datos en Pandas sigue el siguiente formulario:

donde x es el formato que se lee y source es la ubicación de los datos seguida de una variedad de parámetros a menudo opcionales.

Cómo ingerir datos de diferentes fuentes.

En las secciones a continuación, veremos algunos ejemplos de código que usan Pandas para ingerir datos de varias fuentes de datos. Cada sección tendrá un código que puede ejecutar en un archivo de datos de muestra para demostrar la ingestión.

Para los ejercicios a continuación, usaremos datos de los conjuntos de datos de Kaggle. Puede descargar el archivo water_quality_data.csv desde aquí, pero puede encontrar los datos de origen en Kaggle.

Archivos CSV

Archivo de ejemplo: water_quality_data.csv Los archivos CSV son un formato muy común en el mundo de la ciencia de datos. Este formato es un formato de archivo de texto con una línea de texto por fila de datos con los valores en cada columna separados por una coma. El código para ingerir un archivo CSV se proporciona a continuación:

# Ingest data from a CSV
import pandas as pd 
 
df = pd.read_csv('water_quality_data.csv')

Este código importa el pandas paquete y lo usa para leer el archivo CSV en una variable llamada df. Esta variable es un marco de datos pandas), una de las estructuras de datos de tipo tabla más populares en Python.

Para ver un ejemplo del uso de diferentes parámetros para afectar la forma en que se lee el archivo CSV, intente descargar el archivo directamente desde el sitio web de Kaggle mencionado anteriormente. El archivo descargado utiliza una codificación de caracteres llamada CP-1252 pero, de forma predeterminada, el read_csv La función usa UTF-8 y, por lo tanto, producirá un error si intenta usar el código anterior para leer el archivo. Para leer correctamente este archivo (y guardarlo en el archivo que descargó anteriormente), use este código (observe el encoding parámetros):

import pandas as pd 
 
df = pd.read_csv('Water_pond_tanks_2021.csv', encoding='cp1252')
df.to_csv('water_quality_data.csv', index=False)

Como referencia, el código para generar todos los archivos utilizados en las siguientes secciones es:

import pandas as pd 
import openpyxl 
import pyarrow
from sqlalchemy import create_engine
 
df = pd.read_csv('Water_pond_tanks_2021.csv', encoding='cp1252')
 
# Write to various file formats
df.to_csv('water_quality_data.csv', index=False)
df.to_excel('water_quality_data.xlsx', sheet_name="water data", index=False)
df.to_json('water_quality_data.json', orient="columns")
df.to_parquet('water_quality_data.parquet', engine="pyarrow", index=False)
 
# Write to a SQLite file
engine = create_engine('sqlite:///water_quality_data.db')
df.to_sql('waterquality', engine)

Tenga en cuenta las dependencias adicionales en el openpyxl, pyarrowy sqlalchemy paquetes

Archivos de Excel

Archivo de ejemplo: water_quality_data.xlsx

Excel es un programa de software muy popular de Microsoft que los usuarios comerciales suelen utilizar para recopilar datos. Los archivos de Excel (con la extensión .xlsx) suelen tener más de una hoja y se componen de varios archivos comprimidos juntos. Afortunadamente, usando el openpyxl El paquete reduce la complejidad de trabajar con estos archivos y el código para leer estos archivos es el siguiente:

# Ingest data from Excel
import pandas as pd 
import openpyxl
 
df = pd.read_excel('water_quality_data.xlsx', sheet_name="water data")

Tenga en cuenta el uso de la sheet_name parámetro en la llamada a read_excel que identifica cuál de las hojas desea abrir. También puedes pasar None para ingerir todas las hojas o una lista de nombres de hojas para ingerir hojas específicas con una sola lectura de archivo.

Archivos JSON

Archivo de ejemplo: water_quality_data.json

JSON es otro formato muy popular para almacenar y transmitir datos. Este formato suele ser el preferido por programadores y profesionales de datos debido a su formato sucinto que preserva la legibilidad humana. La ubicuidad de este formato de archivo entre los profesionales de datos significa que es compatible con casi todas las herramientas de ingeniería de datos y Python no es una excepción. El siguiente código incorporará un archivo JSON en un marco de datos de pandas:

# Ingest data from JSON
import pandas as pd 
 
df = pd.read_json('water_quality_data.json')

Archivos de parquet

Archivo de ejemplo: water_quality_data.parquet

El formato de archivo parquet es un formato de archivo orientado a columnas de código abierto de Apache que es popular entre las aplicaciones de big data. Mientras que los formatos orientados a filas como CSV mantienen juntos todos los datos de un registro o fila, los formatos orientados a columnas mantienen juntos todos los datos de un campo o columna. Cuando se manejan grandes conjuntos de datos, a veces es útil ingerir solo los datos de los campos relevantes, lo cual es una característica que los formatos orientados a columnas admiten bien.

El parquet no es legible por humanos y, en cambio, se almacena como un formato binario. Para ver los datos de un archivo de parquet, necesita una herramienta como ParquetViewer.

El código para ingerir datos usando Python desde un archivo de parquet es el siguiente:

# Ingest data from parquet
import pandas as pd 
import pyarrow
 
df = pd.read_parquet('water_quality_data.parquet')

Tenga en cuenta la dependencia aquí en el pyarrow paquete. Este motor de archivo de parquet es el predeterminado para el read_parquet llamar pero también puedes usar el fastparquet motor si lo prefiere. Hay diferencias sutiles, pero en general, pyarrow se prefiere cuando se usan tramas de datos pandas.

Bases de datos SQL

Archivo de ejemplo: water_quality_data.db

El último formato de datos que cubriremos es el formato de base de datos SQL. Para este artículo, usaremos una base de datos SQLite3 pero con los conectores apropiados, una sintaxis similar funcionará con muchas otras bases de datos relacionales, incluidas Postgres o MySQL.

El código para ingerir datos con Python usando SQL es el siguiente:

# Ingest data from SQL
import pandas as pd 
from sqlalchemy import create_engine
 
engine = create_engine('sqlite:///water_quality_data.db')
df = pd.read_sql('waterquality', engine)

Tenga en cuenta el uso de la create_engine llamada que nos conecta explícitamente con el conector SQLite3. Aquí es donde puede usar otros tipos de conectores para conectarse a varias bases de datos SQL. Consulte la documentación de SQLAlchemy sobre dialectos si está utilizando otras bases de datos.

Aprende a codificar con Udacity.

Ingerir datos con Python es una habilidad fundamental para cualquier ingeniero de datos en un entorno de ciencia de datos moderno. En este artículo, explicamos lo que significa ingerir datos y luego exploramos diferentes métodos para manejar varios formatos de datos.

¿Está listo para llevar sus habilidades de ingeniería de datos al siguiente nivel? El programa Programación para ciencia de datos con Python Nanodegree es su próximo paso. Aprenderá a trabajar en el campo de la ciencia de datos utilizando las herramientas fundamentales de programación de datos: Python, SQL, línea de comandos y git.

COMIENZA A APRENDER

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *