Saltar al contenido

Python para ciencia de datos

Material de autoestudio: NumPy, pandas y trabajo con archivos de datos. Cada leccion es un subtema, con ejemplos que crecen en dificultad, preguntas para verificar lo aprendido y practicas donde se parte de un archivo sucio y hay que llegar a un resultado exacto.

61 de 61 lecciones publicadas · 42 practicas previstas.

Repaso: ejercicios 1-7 · resoluciones sueltas resaltadas, para releer sin editor.

Mapa de dependencias

Cada fila es un nivel: una leccion solo depende de lecciones que estan mas arriba. Sirve para saber que se puede saltear y que no.

Mapa de dependencias entre lecciones Cada fila es un nivel: una leccion solo depende de lecciones de filas anteriores. La misma informacion esta debajo como lista por unidad. N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17 N18 N21 N22 0.1 Depurar en VS Code: breakpoints y la consola 0.1 0.2 Positron: el IDE pensado para datos 0.2 1.1 El archivo como fuente de datos 1.1 1.2 Excepciones: cuando el archivo miente 1.2 1.3 CSV con el modulo csv 1.3 1.4 JSON con el modulo json 1.4 1.5 Las cuatro capas de error 1.5 1.6 Informe de rechazos y logging 1.6 1.A Apendice: PEP 8, docstrings y comentarios 1.A 2.1 De list[dict] a tabla 2.1 2.2 Clave, unicidad y grano 2.2 2.3 Vocabulario de calidad de datos 2.3 3.1 El array y por que no una lista 3.1 3.2 Vectorizacion 3.2 3.3 Indexacion y rebanado 3.3 3.4 Mascaras booleanas 3.4 3.5 Broadcasting 3.5 3.6 Estadistica y NaN 3.6 3.7 Atipicos: z-score e IQR 3.7 4.1 Series y DataFrame 4.1 4.2 Leer y mirar 4.2 4.3 Seleccionar columnas 4.3 4.4 loc vs iloc 4.4 4.5 Filtrar filas 4.5 4.6 El indice 4.6 4.7 Crear y modificar columnas 4.7 4.8 Ordenar y desempatar 4.8 5.1 Diagnostico antes de tocar nada 5.1 5.2 Tipos y texto 5.2 5.3 Fechas 5.3 5.4 Valores ausentes 5.4 5.5 Duplicados 5.5 5.6 Rango, dominio y atipicos 5.6 5.7 Pipeline reproducible 5.7 6.1 concat 6.1 6.2 merge: la clave comun 6.2 6.3 merge avanzado 6.3 6.4 groupby 6.4 6.5 pivot_table y reshape 6.5 6.6 Series de tiempo 6.6 7.1 read_csv a fondo 7.1 7.2 JSON con pandas 7.2 7.3 Excel con openpyxl 7.3 7.4 Escribir el resultado 7.4 7.5 El puente con SQL 7.5 8.1 Anatomia de una figura: Figure y Axes 8.1 8.2 Elegir el grafico segun la pregunta 8.2 8.3 Lineas: tendencia en el tiempo 8.3 8.4 Barras: comparar categorias 8.4 8.5 Histograma: la forma de una variable 8.5 8.6 Dispersion: dos variables que varian juntas 8.6 8.7 Bandas y anomalias: la variabilidad en el grafico 8.7 8.8 El panel y el guardado 8.8 9.1 Seaborn sobre Matplotlib: data, x, y, hue 9.1 9.2 Mapa de calor: correlacion y tabla pivote 9.2 9.3 Caja y violin: la distribucion por grupo 9.3 9.4 Varias variables a la vez 9.4 9.5 Paleta, anotacion y contraste 9.5 9.6 La imagen que sale del script 9.6 10.1 Recetario consolidado 10.1 10.2 Proyecto integrador: del DW sucio al reporte 10.2

PublicadaPendiente

Contenidos

U0 · Herramientas 2/2

El entorno antes del codigo: ver que tiene una variable en vez de adivinarlo. Se puede leer en cualquier momento, pero cuanto antes se lea, menos tiempo se pierde despues.

  1. 0.1Depurar en VS Code: breakpoints y la consolabreakpoint, Step Over, Step Into, Consola de depuracion
  2. 0.2Positron: el IDE pensado para datosConsola, Variables, Data Explorer, Plots

U1 · Repaso: archivos y errores 7/7

Puente desde la clase 2. Solo biblioteca estandar: el trabajo manual antes de que read_csv lo esconda.

  1. 1.1El archivo como fuente de datospathlib.Path, open, with, encoding
  2. 1.2Excepciones: cuando el archivo mientetry/except/else/finally, raise ... from, excepcion propia
  3. 1.3CSV con el modulo csvcsv.DictReader, csv.DictWriter, newline
  4. 1.4JSON con el modulo jsonjson.load, json.dump, ensure_ascii
  5. 1.5Las cuatro capas de errorlectura/parseo/validacion/negocio, tokens de ausente, descartar/imputar/informar
  6. 1.6Informe de rechazos y logginglogging, antipatrones
  7. 1.AApendice: PEP 8, docstrings y comentariosPEP 8, PEP 257

U2 · Pensar en tablas 3/3

Fila, columna, clave y grano. Sin librerias. La unidad que hace comprensible todo lo demas.

  1. 2.1De list[dict] a tablafila = registro, columna = variable, datos ordenados
  2. 2.2Clave, unicidad y granoclave primaria, clave compuesta, clave foranea, grano
  3. 2.3Vocabulario de calidad de datosausente, fuera de rango, atipico, duplicado

U3 · NumPy 7/7

El array, la vectorizacion y las mascaras booleanas: el vocabulario con el que despues se lee pandas.

  1. 3.1El array y por que no una listanp.array, dtype, shape, ndim
  2. 3.2Vectorizacionoperaciones elemento a elemento, np.arange, reshape, axis
  3. 3.3Indexacion y rebanadoslicing, a[fila, col], vistas vs copias
  4. 3.4Mascaras booleanascomparaciones, and / or / not sobre arrays, a[mask], np.where
  5. 3.5Broadcastingreglas de compatibilidad, centrar y escalar
  6. 3.6Estadistica y NaNmean, median, std, percentile
  7. 3.7Atipicos: z-score e IQRpercentile, IQR, clip

U4 · pandas: fundamentos 8/8

Series y DataFrame, seleccionar, filtrar, indexar y ordenar.

  1. 4.1Series y DataFramepd.Series, pd.DataFrame, indice
  2. 4.2Leer y mirarread_csv, head, tail, shape
  3. 4.3Seleccionar columnasseleccion de una columna, seleccion de varias columnas, rename
  4. 4.4loc vs ilocloc, iloc, at, iat
  5. 4.5Filtrar filasmascaras booleanas, isin, between, str.contains
  6. 4.6El indiceset_index, reset_index, index.is_unique
  7. 4.7Crear y modificar columnasassign, copy, ChainedAssignmentError
  8. 4.8Ordenar y desempatarsort_values, na_position, orden total

U5 · pandas: calidad y limpieza 7/7

El nucleo del curso: diagnosticar, convertir, imputar, deduplicar y decidir que hacer con cada defecto.

  1. 5.1Diagnostico antes de tocar nadaisna, duplicated, nunique, value_counts
  2. 5.2Tipos y textoto_numeric, astype, str.strip, str.lower
  3. 5.3Fechasto_datetime, errors=coerce, dayfirst, accesor .dt
  4. 5.4Valores ausentesna_values, fillna, dropna
  5. 5.5Duplicadosduplicated, drop_duplicates, keep
  6. 5.6Rango, dominio y atipicosisin, between, clip, IQR
  7. 5.7Pipeline reproduciblepipe, assign, assert, funciones puras

U6 · pandas: combinar y resumir 6/6

Unir tablas y agrupar. Donde se paga no haber entendido el grano.

  1. 6.1concatpd.concat, axis, ignore_index
  2. 6.2merge: la clave comunpd.merge, on, how=inner, how=left
  3. 6.3merge avanzadohow=outer, indicator, anti-join, validate
  4. 6.4groupbygroupby, agg, as_index, dropna
  5. 6.5pivot_table y reshapepivot_table, melt, fill_value
  6. 6.6Series de tiemporesample, diff, shift, corte por hueco

U7 · Entrada y salida 5/5

CSV, JSON, Excel y el puente con SQL, con parametros explicitos.

  1. 7.1read_csv a fondosep, decimal, encoding, usecols
  2. 7.2JSON con pandasread_json, json_normalize, to_json
  3. 7.3Excel con openpyxlread_excel, sheet_name, to_excel, ExcelWriter
  4. 7.4Escribir el resultadoto_csv, index=False, float_format, date_format
  5. 7.5El puente con SQLsqlite3.connect, read_sql_query, to_sql, consultas parametrizadas

U8 · Visualizacion con Matplotlib 8/8

El grafico como argumento: elegir el tipo correcto, leer lo que muestra y detectar cuando el dato sucio deforma la figura antes que la tabla.

  1. 8.1Anatomia de una figura: Figure y Axesplt.subplots, ax.plot, ax.set_title, fig.tight_layout
  2. 8.2Elegir el grafico segun la preguntaax.bar, ax.hist, ax.scatter, sharey
  3. 8.3Lineas: tendencia en el tiempoax.plot, to_datetime, resample, rolling
  4. 8.4Barras: comparar categoriasax.bar, ax.barh, ax.bar_label, ax.set_ylim
  5. 8.5Histograma: la forma de una variableax.hist, bins, ax.axvline
  6. 8.6Dispersion: dos variables que varian juntasax.scatter, np.polyfit, np.corrcoef, alpha
  7. 8.7Bandas y anomalias: la variabilidad en el graficoax.fill_between, ax.axhline, z-score
  8. 8.8El panel y el guardadoplt.subplots(2, 2), fig.suptitle, fig.savefig, dpi

U9 · Visualizacion con Seaborn 6/6

La interfaz estadistica sobre Matplotlib: correlacion, distribucion y varias variables a la vez, con la personalizacion y la exportacion que hacen que el grafico sobreviva fuera de la pantalla.

  1. 9.1Seaborn sobre Matplotlib: data, x, y, huesns.scatterplot, sns.boxplot, ax=, melt
  2. 9.2Mapa de calor: correlacion y tabla pivotedf.corr, sns.heatmap, annot, vmin
  3. 9.3Caja y violin: la distribucion por gruposns.boxplot, sns.stripplot, sns.violinplot, inner
  4. 9.4Varias variables a la vezsns.pairplot, corner, hue, size
  5. 9.5Paleta, anotacion y contrastesns.set_theme, palette, ax.annotate, idxmax
  6. 9.6La imagen que sale del scriptsns.lineplot, errorbar, fig.savefig, dpi

U10 · Cierre 2/2

Recetario y proyecto integrador.

  1. 10.1Recetario consolidado
  2. 10.2Proyecto integrador: del DW sucio al reporte