QuieroProgramar por Rodri Gonzalez
Data Analysis · Lección 03 de 19

Lectura de Datos (I/O)

En el trabajo corporativo no creamos diccionarios a mano: abrimos bases crudas de miles o millones de filas. Estas bases suelen ser archivos CSV o respuestas SQL. Aquí dominarás read_csv(), la función estrella para ingerir datos.

50–70 min Prerrequisitos: Series y DataFrames
01

Teoría: El Input/Output de pandas

La sigla I/O (Input/Output o Entrada/Salida) se refiere a cómo la máquina virtual de Python recibe datos del exterior (Input) y los exporta modificados (Output).

A diferencia de Excel, donde tenés que dar Doble Clic sobre un ícono y esperar a que la computadora cargue una interfaz pesada y visual, pandas puede ingerir archivos ridículamente grandes ("millones de registros") silenciosamente en de un instante.

La familia read_*()

Todos los comandos de lectura en pandas empiezan con pd.read_ seguido de la extensión/formato. Los más usados son:

En este curso interactivo (al estar corriendo Python en tu navegador por seguridad) no tendrías forma de darle la ruta en C:\Mis Documentos\dataset.csv" al entorno. Por ello, vas a ver que utilizamos un pequeño truco con io.StringIO que hace que Python crea que un simple texto largo escrito en el código es un archivo real. En tu trabajo de escritorio esto no será necesario (basta con poner la URL local).
02

Ejemplo: Tu primer read_csv()

A continuación vamos a simular un archivo CSV extraído de las ventas regionales en sucursales en Argentina. Observá cómo transformamos el texto separado por comas directamente al poderoso DataFrame.

leyendo_csv.pyPython

        
Hacé clic en ▶ Ejecutar

El clásico problema de delimitadores

En USA/Europa las bases de datos separan las columnas con comas (,). Pero en Argentina usamos la coma para los decimales (ej $15,50), entonces nuestros sistemas viejos exportan CSVs separados por puntos y comas (;) u otros caracteres.

Si intentás leer eso con "read_csv" estandar, todo colapsará. Para evitarlo la función tiene el mejor parámetro salva-vidas: sep=";".

separadores.pyPython

        
Hacé clic en ▶ Ejecutar
03

Observar la cabecera: .head() y .tail()

Cuando ingestás millones de filas de datos, si imprimís usando print(df), la pantalla se colgaría o te mostraría tanto texto que tu cerebro se tilda. A los Data Analysts les encantan dos funciones para "ver rapidito qué nos trajo la base de datos":

head_tail.pyPython

        
Hacé clic en ▶ Ejecutar
Tip profesional: Usar df.head() al iniciar tus scripts (o Notebooks) permite validar rápidamente que a) El separador esté correcto, b) Las columnas mantengan nombres sanos, c) No haya filas de basura.
04

Ejercicios interactivos

Manos al bloque. Practicá la ingesta del sistema simulado.

Nivel 1 · Básico

Ejercicio 1: Tu primera lectura con separador

El sistema te devuelve un texto separado por tabulaciones o barras. Acá usaremos la coma. Dejá el separador default, decile a Pandas que lea el buffer usando read_csv() y guardalo en la variable `df_empleados`. Luego imprimí TODO usando `print()`.

ej_01_read.pyDebe contener la palabra "Soporte" del print

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 2: Exigiendo separadores estrictos

Trabajás en un banco, y el sistema Cobis viejo reporta los balances de las cuentas usando el símbolo ampersand &. Modificá el parámetro sep para que lea bien la base de datos y mostrá solamente el promedio (usando .mean()) de los Saldos.

ej_02_separadores.pyDebe dar un promedio de "260.0"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 3: Extracción exploratoria con Head

Usá .head(2) en un print para validar las primeras 2 filas. El output debe contar con la presencia de "Apple" validándose que leímos el top 2 exitosamente.

ej_03_head.pyLa palabra Apple debe estar visible

          
Hacé clic en ▶ Ejecutar
05

Reflexión Final

Leer datos parece un paso simple, pero configurar correctamente read_csv() va a evitar que pierdas horas limpiando caracteres fantasmas en el futuro.

Ahora que las bases de datos externas ya están en nuestro entorno local formadas como DataFrames perfectos, comienza el verdadero trabajo: cómo encontrar exactamente los clientes, fechas o productos que el gerente nos está exigiendo buscar.

Avanzá a la siguiente lección (04 · pandas: selección y filtrado) para aprender la parte de Queries y filtros.