<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Axial Press — Blog</title><description>Tutoriales de análisis de datos con Python, reflexiones sobre el oficio del dato y novedades editoriales para Formación Profesional.</description><link>https://axialpress.com/</link><language>es-es</language><item><title>El modelo tenía un 99% de accuracy: la frase que ha costado millones</title><link>https://axialpress.com/blog/accuracy-99-frase-millones/</link><guid isPermaLink="true">https://axialpress.com/blog/accuracy-99-frase-millones/</guid><description>«El modelo tenía un 99% de accuracy» suena a triunfo. Es un diagnóstico. La métrica que elegiste define qué errores estás dispuesto a asumir.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;He estado en reuniones donde alguien presenta una gráfica, sonríe, y suelta la frase: “el modelo tiene un 99 % de accuracy”. La sala asiente. A veces aplaude. A veces se firma un presupuesto. La frase tiene algo de himno: suena a meta alcanzada, a problema resuelto, a noches en &lt;code&gt;scikit-learn&lt;/code&gt; que por fin dan fruto. Yo, sentado al otro lado, suelo callar. Y mientras todos celebran, hago la cuenta que casi nunca se hace en voz alta: ¿qué estaba midiendo exactamente ese 99 %? ¿Y qué se quedó fuera?&lt;/p&gt;
&lt;h2 id=&quot;un-99--que-no-detecta-nada&quot;&gt;Un 99 % que no detecta nada&lt;/h2&gt;
&lt;p&gt;El ejemplo que más uso en clase es el cribado de cáncer de mama. Programa español, datos reales. De cada 10.000 mujeres que pasan la prueba, 40 tienen cáncer. La mamografía acierta 34 de esos 40 y se equivoca con 398 mujeres sanas, a las que cita para una segunda prueba. &lt;strong&gt;Sensibilidad real: 85 %. Falsas alarmas: 4 %. Accuracy global: 99,6 %.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ahora imagínate otro sistema. Uno mucho más simple. Uno que, sin mirar las placas, dice “sin cáncer” a las 10.000 mujeres. Su accuracy es también 99,6 % —más alta que la de la mamografía, de hecho— y no detecta un solo tumor. Ninguno. Cero de cuarenta.&lt;/p&gt;
&lt;p&gt;Eso es la paradoja de la exactitud. &lt;strong&gt;Cuando la clase que te importa es rara —menos del 5 % de los casos—, la accuracy premia ignorarla.&lt;/strong&gt; No es un fallo del modelo. Es un fallo de la pregunta. La métrica ha hecho exactamente lo que le pediste: contar aciertos sobre el total. Lo que no te ha dicho es que el coste de los errores estaba colocado todo en el mismo lado. Y ese lado, en sanidad, es el de las personas que se van a casa sin diagnóstico.&lt;/p&gt;
&lt;h2 id=&quot;cuando-el-baseline-bate-a-tu-modelo&quot;&gt;Cuando el baseline bate a tu modelo&lt;/h2&gt;
&lt;p&gt;En el libro trabajamos con Telco Churn: 7.043 clientes de una teleco, 26,5 % en riesgo de abandonar. Si entrenas un modelo y le pides predecir, la opción más barata —“este cliente no se va”— ya te da un 73,5 % de accuracy sin entrenar nada. Una semana de trabajo para superar al “no hace nada” y, sin embargo, ese 73,5 % sigue siendo un modelo inútil: no previene una sola baja, solo confirma lo que ya sabías sobre los que se quedan.&lt;/p&gt;
&lt;p&gt;Aquí aparece el matiz que distingue a un técnico de un comercial con PowerPoint. &lt;strong&gt;Una métrica alta en un dataset desequilibrado no es un resultado, es una ausencia de resultado.&lt;/strong&gt; La pregunta correcta no es cuánto acierta el modelo, sino cuánto de lo que te importa está fallando. Y eso se mide con otras herramientas: recall cuando no puedes permitirte perder positivos (cáncer, fraude, fuga de clientes), precision cuando cada falsa alarma cuesta dinero o reputación, F1 cuando necesitas moverte entre ambas sin trampas. En &lt;code&gt;sklearn&lt;/code&gt;, todo eso vive en &lt;code&gt;classification_report&lt;/code&gt; y en la matriz de confusión, dos funciones que tardas diez minutos en aprender y que cambian la conversación con tu jefe de forma permanente.&lt;/p&gt;
&lt;p&gt;Con Telco Churn, el contraste es inmediato:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; sklearn.metrics &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; classification_report&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;y_pred_nada &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;no_abandona&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(y_true)  &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# baseline: siempre predice la clase mayoritaria&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(classification_report(y_true, y_pred_nada))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;#              precision    recall  f1-score&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# no_abandona       0.74      1.00      0.85&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# abandona          0.00      0.00      0.00&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# accuracy                          0.74&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El 74 % de accuracy sigue ahí, orgulloso. Pero la fila de abajo te dice la verdad: el modelo no detecta a ningún cliente en riesgo. Si la dirección te pide “predecir quién se va para retenerlo”, ese 74 % no es una respuesta: es la confirmación de que no has empezado.&lt;/p&gt;
&lt;h2 id=&quot;la-métrica-que-destruyó-el-negocio&quot;&gt;La métrica que destruyó el negocio&lt;/h2&gt;
&lt;p&gt;En la UT08 cuento también la historia de una plataforma de vídeo que optimizó su sistema de recomendaciones para maximizar el tiempo de visualización. El modelo hacía lo que le habían pedido: los usuarios pasaban más horas dentro. Seis meses después, los medios publicaban que el algoritmo empujaba sistemáticamente hacia contenido extremo. Más tiempo en la app, menos calidad de lo que se veía, más personas enfadándose en columnas de opinión.&lt;/p&gt;
&lt;p&gt;Es la Ley de Goodhart en estado puro: &lt;strong&gt;cuando una métrica se convierte en objetivo, deja de ser una buena métrica.&lt;/strong&gt; Y no es un caso raro. YouTube optimizó tiempo en pantalla y radicalizó su feed. Un minorista online optimizó ventas cruzadas y descubrió que los clientes compraban más y devolvían más. Una universidad optimizó “tasa de aprobados” y bajó el nivel del examen.&lt;/p&gt;
&lt;p&gt;En todos los casos, el modelo funcionó. La pregunta estaba mal hecha.&lt;/p&gt;
&lt;h2 id=&quot;la-decisión-que-no-es-técnica&quot;&gt;La decisión que no es técnica&lt;/h2&gt;
&lt;p&gt;Cuando enseño esto en clase, suelo cambiar el orden del temario. Antes de tocar &lt;code&gt;fit&lt;/code&gt;, antes de hablar de árboles o de &lt;code&gt;GradientBoosting&lt;/code&gt;, dedico media hora a escribir en la pizarra dos frases: “qué errores me importan más” y “qué consecuencias asumo si me equivoco”. Es la parte menos vistosa del curso. La que más cuesta defender delante de una clase que quiere ver código corriendo. Pero es, con diferencia, la que más dinero ahorra después.&lt;/p&gt;
&lt;p&gt;Elegir la función objetivo no es una decisión técnica. Es una decisión sobre el problema. &lt;strong&gt;El algoritmo solo ejecuta; la métrica define qué significa “bien” en tu proyecto.&lt;/strong&gt; Y esa definición la firmas tú, no el modelo. Si firmas a ciegas, el modelo cumplirá. Y tú cargarás con el coste de no haber pensado qué le estabas pidiendo.&lt;/p&gt;
&lt;p&gt;La siguiente vez que escuches un porcentaje alto —un 99, un 95, un 85—, no preguntes cuánto es. Pregunta a qué se le llama “éxito” en ese número. Verás cómo cambia la conversación: la cifra seguirá siendo la misma, pero el significado que tiene para el negocio deja de ser un eslogan y vuelve a ser una herramienta. Y muchas veces descubrirás que quien defendía ese número con tanta convicción no lo había mirado de cerca: lo había heredado de una presentación anterior, de un notebook que ya no corre, de un compromiso firmado antes de entender qué estaba midiendo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Una métrica mal elegida no produce errores. Produce la ilusión de no cometerlos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;La UT08 — Modelado y Machine Learning de &lt;a href=&quot;/libros/analisis-de-datos-python/&quot;&gt;Análisis de Datos con Python&lt;/a&gt; trabaja este punto antes de entrenar nada: matriz de confusión, sensibilidad, precision, F1 y la pregunta clave de cada proyecto —qué error te puedes permitir—.&lt;/p&gt;
&lt;p&gt;¿Has visto alguna vez un 99 % que escondía el problema real?&lt;/p&gt;</content:encoded><category>reflexion</category><category>machine-learning</category><category>metricas</category><category>accuracy</category><category>sklearn</category><category>python</category></item><item><title>Por qué escribí un libro de datos para FP (y no otro manual de Python)</title><link>https://axialpress.com/blog/por-que-escribi-este-libro/</link><guid isPermaLink="true">https://axialpress.com/blog/por-que-escribi-este-libro/</guid><description>Por qué escribí un libro de datos para FP —ratio 40/60, datasets reales y la diferencia entre enseñar a un universitario y a quien aprende un oficio.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Cada vez que alguien me pregunta a qué me dedico, la conversación termina en el mismo lugar: &lt;strong&gt;“¿Y no hay ya un libro de Python para datos?”&lt;/strong&gt;. Sí, los hay. Docenas. Algunos son muy buenos. Y sin embargo, escribí otro. Esta es la historia de por qué.&lt;/p&gt;
&lt;h2 id=&quot;el-hueco-que-no-era-de-python&quot;&gt;El hueco que no era de Python&lt;/h2&gt;
&lt;p&gt;El problema nunca fue Python. Cualquiera puede instalar &lt;code&gt;pandas&lt;/code&gt; y abrir un tutorial. El problema es lo que viene después: &lt;strong&gt;enseñar a usarlo con criterio en un aula donde el tiempo vale distinto&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;En un grado universitario de cuatro años, puedes permitirte un semestre para explicar qué es una variable aleatoria antes de tocar un histograma. En Formación Profesional, el alumno tiene 128 horas repartidas en tres trimestres, un módulo con un nombre oficial que cumplir, y al otro lado una empresa esperando técnicos que abran un CSV el lunes. &lt;strong&gt;El manual al uso, con sus 300 páginas de teoría antes del primer &lt;code&gt;read_csv&lt;/code&gt;, se queda corto en un sitio y sobra en el otro.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Probé los manuales que recomendaba el departamento, los que recomendaba la editorial grande, los que circulaban en foros. Eran buenos libros, pero oscilaban entre dos extremos: demasiado técnicos para quien empieza, o demasiado difusos, sin hilo conductor. No era el libro que mis alumnos necesitaban.&lt;/p&gt;
&lt;h2 id=&quot;el-4060-como-constatación-no-como-eslogan&quot;&gt;El 40/60 como constatación, no como eslogan&lt;/h2&gt;
&lt;p&gt;Cuando planifiqué &lt;em&gt;Análisis de Datos con Python&lt;/em&gt; probé con una proporción cercana al &lt;strong&gt;40 % de teoría y 60 % de práctica&lt;/strong&gt;. No es una decisión estética: es lo que mejor resultado me dio para mantener a los alumnos centrados. Más teoría y se pierde el hilo entre conceptos; menos y los ejercicios se vuelven mecánica sin modelo mental.&lt;/p&gt;
&lt;p&gt;En la práctica eso significa que cada unidad alterna un par de páginas de “por qué esto funciona así” con un notebook de tres a cinco horas de trabajo. El hilo conductor de principio a fin es &lt;strong&gt;Ames Housing&lt;/strong&gt;, un dataset con más de 1.400 viviendas reales de Iowa: lo limpias, lo analizas, lo modelas. Es el mismo fichero que va enriqueciéndose a medida que ganas herramientas. Algunas unidades puntuales usan otros datasets abiertos —INE, EPA, Telco Churn— para practicar una técnica concreta, pero la espina dorsal del libro es Ames.&lt;/p&gt;
&lt;p&gt;Esa proporción me costó descartar varios capítulos. El de combinatoria avanzada sobre árboles de decisión, por ejemplo. Era interesante. Era lo que un matemático pediría. No era lo que un técnico de grado medio necesita el día que se sienta delante de un modelo en su primer trabajo. Fuera.&lt;/p&gt;
&lt;h2 id=&quot;lo-que-es-una-base-para-especializarte&quot;&gt;Lo que es: una base para especializarte&lt;/h2&gt;
&lt;p&gt;Este libro es para quien quiere &lt;strong&gt;empezar con una especialización sólida en ciencia de datos&lt;/strong&gt;, no para quien ya está dentro de una. Si tu objetivo es una carrera de investigación en machine learning, vas a necesitar bibliografía más densa; este libro te quedará corto. Pero si estás dando los primeros pasos —en FP, en un bootcamp, en transición desde otro campo:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Aquí encuentras el suelo firme sobre el que construir.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;El libro está pensado para tres perfiles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el alumno de FP que necesita aprobar un módulo, entender lo que hace y poder explicarlo en una entrevista de trabajo.&lt;/li&gt;
&lt;li&gt;el profesor de FP que tiene 128 horas y un currículo oficial, y quiere un material que pueda defender ante un inspector sin tener que reinventar los ejercicios cada curso.&lt;/li&gt;
&lt;li&gt;el profesional en transición que viene de otro campo (administrativo, técnico de mantenimiento, comercial con datos en Excel) y necesita pasar de “uso Excel” a “pienso en datos” sin pasar por un máster.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;funcional-en-dos-sentidos&quot;&gt;Funcional, en dos sentidos&lt;/h2&gt;
&lt;p&gt;La palabra funcional aparece varias veces en el libro, y a propósito juega con dos sentidos.&lt;/p&gt;
&lt;p&gt;El primero es el de &lt;strong&gt;hacer&lt;/strong&gt;: cada capítulo termina con un producto. Un notebook terminado, un mini-informe, un dashboard de Streamlit, un modelo de &lt;code&gt;sklearn&lt;/code&gt; con sus métricas. No con un “ahora tú prueba a hacerlo” vago. Con un entregable concreto que el alumno puede enseñar, defender, o subir a un portfolio.&lt;/p&gt;
&lt;p&gt;El segundo es el de &lt;strong&gt;programación funcional&lt;/strong&gt;: desde la primera línea apenas verás bucles &lt;code&gt;for&lt;/code&gt;. El libro adopta el estilo de los equipos de datos reales —operaciones vectorizadas, &lt;code&gt;apply&lt;/code&gt;, &lt;code&gt;agg&lt;/code&gt;, &lt;code&gt;pipe&lt;/code&gt;, &lt;code&gt;transform&lt;/code&gt;— porque es el código que reconocerás el primer día de trabajo. No es capricho estético. Es el lenguaje que comparten los profesionales del dato.&lt;/p&gt;
&lt;p&gt;Esta es la diferencia entre un manual y un libro de oficio. El manual te enseña a usar la herramienta.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Los libros de oficio tienen una dignidad que los manuales a veces olvidan.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;una-nota-sobre-el-lenguaje&quot;&gt;Una nota sobre el lenguaje&lt;/h2&gt;
&lt;p&gt;Vas a encontrar en el libro frases como “primero abre el terminal” o “esto fallará la primera vez, vuelve a leer el error”. No es un libro escrito desde arriba. Está escrito como te lo explicaría un compañero que ya ha roto esa pieza tres veces. Si en algún momento una explicación te parece demasiado directa, recuerda: el alumno al que le escribí esto no estaba aprendiendo a programar. &lt;strong&gt;Estaba aprendiendo a ganarse la vida con esto.&lt;/strong&gt; Eso cambia la vara de medir.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Y si este planteamiento te resuena —libro pensado para un oficio, no para una carrera; ratio 40/60; datasets reales; entregable al final de cada capítulo— el libro completo está en &lt;a href=&quot;/libros/analisis-de-datos-python/&quot;&gt;Análisis de Datos con Python&lt;/a&gt;. Empieza por la UT1 — El Detective de Datos: el resto de unidades se pueden impartir en un curso escolar o trabajarse por libre, con prácticas resueltas para el profesorado y datasets abiertos descargables.&lt;/p&gt;
&lt;p&gt;¿Te has encontrado alguna vez con un manual que no era para ti? ¿Qué le faltó?&lt;/p&gt;</content:encoded><category>editorial</category><category>editorial</category><category>metodología</category><category>fp</category><category>python</category><category>didáctica</category></item><item><title>análisis_final_v2_bueno_ESTE_SI.ipynb: el caos que todos creamos</title><link>https://axialpress.com/blog/caos-de-ficheros/</link><guid isPermaLink="true">https://axialpress.com/blog/caos-de-ficheros/</guid><description>Por qué todos acabamos con ficheros así, qué te cuesta de verdad ese caos y cómo una estructura mínima —carpetas, naming y Git— lo evita.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Todos tenemos uno. Lo sabemos. Está en alguna carpeta, en algún escritorio, en alguna sesión de Google Colab medio olvidada. Se llama &lt;code&gt;analisis_final_v2_bueno_ESTE_SI.ipynb&lt;/code&gt; y es el monumento más honesto que ha producido la humanidad: un fichero que grita el caos mental de quien lo creó.&lt;/p&gt;
&lt;p&gt;Si te has sentido identificado al leer ese nombre, bienvenido. Este artículo es una sesión de terapia colectiva.&lt;/p&gt;
&lt;h2 id=&quot;la-arqueología-del-nombre&quot;&gt;La arqueología del nombre&lt;/h2&gt;
&lt;p&gt;Pongámonos a excavar. ¿Cómo llega un fichero a llamarse así? Es una historia forense con varias capas.&lt;/p&gt;
&lt;p&gt;Primero, lo creas con un nombre razonable: &lt;code&gt;analisis.ipynb&lt;/code&gt;. Razonable. Limpio. Casi profesional. Pero luego la vida pasa: un compañero te pide “un cambio rápido”, llega un deadline, tu jefe quiere “solo una versión más”. Y haces lo que haría cualquier ser humano en tu lugar: &lt;strong&gt;creas una copia&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;analisis_v2.ipynb&lt;/code&gt;. Hasta aquí, todo normal. Pero &lt;code&gt;v2&lt;/code&gt; también necesita su propia copia, y luego la “definitiva”, y luego la “que sí va”, y luego la “para el cliente”, y al final, después de un día largo, te encuentras con esta colección en tu escritorio:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;analisis.ipynb&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;analisis_v2.ipynb&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;analisis_v2_bueno.ipynb&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;analisis_final.ipynb&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;analisis_final_v2_bueno.ipynb&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;analisis_final_v2_bueno_ESTE_SI.ipynb&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;analisis_final_v2_bueno_ESTE_SI_DE_VERDAD.ipynb&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;analisis_final_v2_bueno_ESTE_SI_DE_VERDAD_ahora_si.ipynb&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Ninguna de esas versiones es la buena. Ni siquiera la que tiene más palabras: son fotos de un mismo proceso, sin contexto, sin orden y sin red de seguridad.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y aquí está la trampa: &lt;strong&gt;ninguna de esas versiones es la buena&lt;/strong&gt;. Ni siquiera la que tiene más palabras. Todas son fotos de momentos distintos de un mismo proceso, sin contexto, sin orden y sin red de seguridad.&lt;/p&gt;
&lt;h2 id=&quot;por-qué-lo-hacemos-spoiler-no-es-vagancia&quot;&gt;Por qué lo hacemos (spoiler: no es vagancia)&lt;/h2&gt;
&lt;p&gt;Aquí viene la parte incómoda: nadie hace esto por pereza. Lo hacemos porque nadie nos enseñó a no hacerlo. En la carrera, en el máster, en el bootcamp, en el ciclo formativo, nos enseñan a programar, a manejar datos, a hacer modelos. Lo que casi nunca nos enseñan es a &lt;strong&gt;organizar el trabajo&lt;/strong&gt; como si fuera un proyecto de ingeniería.&lt;/p&gt;
&lt;p&gt;Y eso, en parte, tiene sentido: cuando estás aprendiendo, lo urgente es que el código corra. No importa si la carpeta es un vertedero o si el nombre es horrible: lo que importa es que el &lt;code&gt;print(&quot;hola mundo&quot;)&lt;/code&gt; funcione y el gráfico salga.&lt;/p&gt;
&lt;p&gt;El problema es que &lt;strong&gt;esa forma de trabajar se nos pega&lt;/strong&gt;. Y el día que te toca hacer un proyecto serio — para una empresa, para un cliente, para un TFG, para un examen con nota — el caos te explota en la cara. Porque el caos, al final, siempre pasa factura. Solo que a veces tarda semanas en llegar.&lt;/p&gt;
&lt;h2 id=&quot;el-día-que-el-caos-pasa-factura&quot;&gt;El día que el caos pasa factura&lt;/h2&gt;
&lt;p&gt;Te cuento tres escenas que, sospecho, también te han pasado a ti.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Escena 1 — El correo de las 23:47.&lt;/strong&gt; Tu jefe (o tu profe) te pide “el análisis de ventas del mes pasado”. Tú sabes que lo tienes. Lo hiciste. Lo recuerdas perfectamente. Pero no recuerdas en cuál de los ocho &lt;code&gt;analisis_*&lt;/code&gt; está la versión buena. Y como no pusiste comentarios, ni separaste los datos del código, ni versionaste nada, pasas dos horas reabriendo ficheros hasta encontrar el que parece “el bueno”. Si es que existe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Escena 2 — El compañero nuevo.&lt;/strong&gt; Llega alguien al equipo. Le pasas tu carpeta de proyecto. Y entonces te mira con esa mezcla de compasión y pánico que solo provoca el código de otro. Porque no hay README, no hay estructura, no hay nada que le diga “esto es lo importante”. Tiene que abrir diez notebooks a ciegas para entender qué hace cada uno.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Escena 3 — El “lo arreglo en un momento”.&lt;/strong&gt; Estás a punto de enviar tu trabajo. Abres el notebook. Haces “un cambio pequeño”. Lo guardas. Lo rompes. Y ahora, ¿cuál era la versión que funcionaba? No lo sabes. No guardaste copia. No hay Git. Y tu yo del pasado, ese que tenía la versión buena, no puede ayudarte porque ya no existe.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Trabajamos como si fuéramos los únicos que van a tocar ese fichero, y como si nunca más fuéramos a necesitarlo. Las dos cosas son falsas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Las tres escenas tienen la misma raíz: &lt;strong&gt;trabajamos como si fuéramos los únicos que vamos a tocar ese fichero, y como si nunca más fuéramos a necesitarlo&lt;/strong&gt;. Las dos cosas son falsas. La primera, porque tu yo del futuro te odia cada vez que hereda un proyecto así. La segunda, porque ese código va a volver, te lo garantizo, justo cuando menos te lo esperes.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;la-cura-no-es-disciplina-es-método&quot;&gt;La cura no es disciplina: es método&lt;/h2&gt;
&lt;p&gt;La buena noticia es que la solución no requiere heroicidad. No necesitas convertirte en una persona ordenada ni cultivar hábitos de monje. Solo necesitas &lt;strong&gt;una estructura mínima&lt;/strong&gt; que trabaje a tu favor, incluso en tus peores días.&lt;/p&gt;
&lt;p&gt;Tres ideas, ninguna nueva, todas probadas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Una estructura de carpetas que se explique sola.&lt;/strong&gt; Algo tan simple como &lt;code&gt;data/&lt;/code&gt; para los datasets, &lt;code&gt;notebooks/&lt;/code&gt; para los cuadernos y &lt;code&gt;scripts/&lt;/code&gt; para el código reutilizable. Si además metes &lt;code&gt;output/&lt;/code&gt; para los resultados, ya tienes el 80% del trabajo hecho. No hace falta más, ni tampoco un sistema complejo de doce carpetas: simple, predecible, repetible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Un naming convention que no dé vergüenza.&lt;/strong&gt; Nombres descriptivos, fechas en formato ISO (&lt;code&gt;2026-06-05&lt;/code&gt;), versiones con números, sin adjetivos emocionales. &lt;code&gt;analisis_ventas_2026q2_v03.ipynb&lt;/code&gt; se puede ordenar, buscar y entender dentro de un año. &lt;code&gt;analisis_final_v2_bueno_ESTE_SI_DE_VERDAD_ahora_si_v2.ipynb&lt;/code&gt; no hay quien lo ordene, ni lo busque, ni lo recuerde.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Git, aunque sea un poco.&lt;/strong&gt; No necesitas ser un gurú de las ramas ni entender rebase interactivo. Con cuatro comandos (&lt;code&gt;add&lt;/code&gt;, &lt;code&gt;commit&lt;/code&gt;, &lt;code&gt;push&lt;/code&gt;, &lt;code&gt;pull&lt;/code&gt;) ya tienes un historial de qué cambió, cuándo y por qué. Es la única máquina del tiempo fiable que existe para el código. Y, además, te obliga a pensar antes de guardar.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y aquí viene el secreto a voces: &lt;strong&gt;estas tres cosas se enseñan el primer día de cualquier trabajo serio de datos&lt;/strong&gt;. Quien las aprende pronto trabaja el doble de rápido que quien las aprende tarde. Y quien nunca las aprende acaba con un monumento al caos en su escritorio y con la misma escena de pánico cada trimestre.&lt;/p&gt;
&lt;h2 id=&quot;una-pregunta-para-llevar&quot;&gt;Una pregunta para llevar&lt;/h2&gt;
&lt;p&gt;Y antes de cerrar, te dejo con la pregunta que de verdad importa:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Cuál es el nombre de fichero más vergonzoso que has creado tú, y qué aprendiste (o no) después?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuéntamelo. Prometo no juzgar: yo también guardo los míos como prueba de que todos empezamos igual.&lt;/p&gt;
&lt;p&gt;Y si este tema te resuena y quieres empezar a montar tus proyectos con una estructura limpia desde el minuto uno, en la &lt;strong&gt;UT1 — El Detective de Datos&lt;/strong&gt; del libro empezamos exactamente por aquí: el flujo de trabajo profesional, la organización de carpetas y las herramientas con las que un proyecto se entiende de un vistazo. A veces, lo más importante de un proyecto de datos no es el modelo. Es todo lo que hay alrededor del modelo.&lt;/p&gt;</content:encoded><category>reflexion</category><category>organización</category><category>git</category><category>buenas prácticas</category><category>fp</category></item></channel></rss>