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.
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.
- 0.1Depurar en VS Code: breakpoints y la consolabreakpoint, Step Over, Step Into, Consola de depuracion
- 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.1El archivo como fuente de datospathlib.Path, open, with, encoding
- 1.2Excepciones: cuando el archivo mientetry/except/else/finally, raise ... from, excepcion propia
- 1.3CSV con el modulo csvcsv.DictReader, csv.DictWriter, newline
- 1.4JSON con el modulo jsonjson.load, json.dump, ensure_ascii
- 1.5Las cuatro capas de errorlectura/parseo/validacion/negocio, tokens de ausente, descartar/imputar/informar
- 1.6Informe de rechazos y logginglogging, antipatrones
- 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.
- 2.1De list[dict] a tablafila = registro, columna = variable, datos ordenados
- 2.2Clave, unicidad y granoclave primaria, clave compuesta, clave foranea, grano
- 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.
- 3.1El array y por que no una listanp.array, dtype, shape, ndim
- 3.2Vectorizacionoperaciones elemento a elemento, np.arange, reshape, axis
- 3.3Indexacion y rebanadoslicing, a[fila, col], vistas vs copias
- 3.4Mascaras booleanascomparaciones, and / or / not sobre arrays, a[mask], np.where
- 3.5Broadcastingreglas de compatibilidad, centrar y escalar
- 3.6Estadistica y NaNmean, median, std, percentile
- 3.7Atipicos: z-score e IQRpercentile, IQR, clip
U4 · pandas: fundamentos 8/8
Series y DataFrame, seleccionar, filtrar, indexar y ordenar.
- 4.1Series y DataFramepd.Series, pd.DataFrame, indice
- 4.2Leer y mirarread_csv, head, tail, shape
- 4.3Seleccionar columnasseleccion de una columna, seleccion de varias columnas, rename
- 4.4loc vs ilocloc, iloc, at, iat
- 4.5Filtrar filasmascaras booleanas, isin, between, str.contains
- 4.6El indiceset_index, reset_index, index.is_unique
- 4.7Crear y modificar columnasassign, copy, ChainedAssignmentError
- 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.
- 5.1Diagnostico antes de tocar nadaisna, duplicated, nunique, value_counts
- 5.2Tipos y textoto_numeric, astype, str.strip, str.lower
- 5.3Fechasto_datetime, errors=coerce, dayfirst, accesor .dt
- 5.4Valores ausentesna_values, fillna, dropna
- 5.5Duplicadosduplicated, drop_duplicates, keep
- 5.6Rango, dominio y atipicosisin, between, clip, IQR
- 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.
- 6.1concatpd.concat, axis, ignore_index
- 6.2merge: la clave comunpd.merge, on, how=inner, how=left
- 6.3merge avanzadohow=outer, indicator, anti-join, validate
- 6.4groupbygroupby, agg, as_index, dropna
- 6.5pivot_table y reshapepivot_table, melt, fill_value
- 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.
- 7.1read_csv a fondosep, decimal, encoding, usecols
- 7.2JSON con pandasread_json, json_normalize, to_json
- 7.3Excel con openpyxlread_excel, sheet_name, to_excel, ExcelWriter
- 7.4Escribir el resultadoto_csv, index=False, float_format, date_format
- 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.
- 8.1Anatomia de una figura: Figure y Axesplt.subplots, ax.plot, ax.set_title, fig.tight_layout
- 8.2Elegir el grafico segun la preguntaax.bar, ax.hist, ax.scatter, sharey
- 8.3Lineas: tendencia en el tiempoax.plot, to_datetime, resample, rolling
- 8.4Barras: comparar categoriasax.bar, ax.barh, ax.bar_label, ax.set_ylim
- 8.5Histograma: la forma de una variableax.hist, bins, ax.axvline
- 8.6Dispersion: dos variables que varian juntasax.scatter, np.polyfit, np.corrcoef, alpha
- 8.7Bandas y anomalias: la variabilidad en el graficoax.fill_between, ax.axhline, z-score
- 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.
- 9.1Seaborn sobre Matplotlib: data, x, y, huesns.scatterplot, sns.boxplot, ax=, melt
- 9.2Mapa de calor: correlacion y tabla pivotedf.corr, sns.heatmap, annot, vmin
- 9.3Caja y violin: la distribucion por gruposns.boxplot, sns.stripplot, sns.violinplot, inner
- 9.4Varias variables a la vezsns.pairplot, corner, hue, size
- 9.5Paleta, anotacion y contrastesns.set_theme, palette, ax.annotate, idxmax
- 9.6La imagen que sale del scriptsns.lineplot, errorbar, fig.savefig, dpi
U10 · Cierre 2/2
Recetario y proyecto integrador.