Files
Pain-Research/preliminar_analysis_exploration.ipynb
2026-10-23 12:11:19 +02:00

1614 lines
67 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "ef3a7c61",
"metadata": {},
"source": [
"# Análisis preliminar exploratorio"
]
},
{
"cell_type": "markdown",
"id": "f493c890",
"metadata": {},
"source": [
"## Índice\n",
"\n",
"1. [Objetivos del análisis](#objetivos-del-análisis)\n",
"2. [Inspección inicial de los datos](#inspección-inicial-de-los-datos)\n",
"3. [Limpieza y preparación](#limpieza-y-preparación)\n",
"4. [Análisis univariante](#análisis-univariante)\n",
"5. [Análisis de relaciones entre variables](#análisis-de-relaciones-entre-variables)\n",
"6. [Visualización de los datos](#visualización-de-los-datos)\n",
"7. [Conclusiones](#conclusiones)"
]
},
{
"cell_type": "markdown",
"id": "e688d0e7",
"metadata": {},
"source": [
"## 1. Objetivos del análisis"
]
},
{
"cell_type": "markdown",
"id": "13fb63e3",
"metadata": {},
"source": [
"Buscamos encontrar patrones que nos permitan decidir entre diferentes quejas o puntos de dolor que puedas ser susceptibles de resolverse con un software."
]
},
{
"cell_type": "markdown",
"id": "78908327",
"metadata": {},
"source": [
"## 2. Inspección inicial de los datos"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "dcdef49a",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import os"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "7c0e5e49",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>estado</th>\n",
" <th>fecha_publicacion</th>\n",
" <th>actor</th>\n",
" <th>empresa</th>\n",
" <th>actividad</th>\n",
" <th>empleados_evidencia</th>\n",
" <th>proceso</th>\n",
" <th>episodio_resumido</th>\n",
" <th>fuente_publicacion</th>\n",
" <th>fuente_empresa_o_tamano</th>\n",
" <th>criterio_observado</th>\n",
" <th>notas</th>\n",
" <th>dimension_tipo</th>\n",
" <th>grupo_similitud</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>EXP-001</td>\n",
" <td>incluido</td>\n",
" <td>2026-08 aprox.</td>\n",
" <td>Cristóbal Hernández Mora</td>\n",
" <td>Recapol SA</td>\n",
" <td>Fabricación y transformación de carrocerías pa...</td>\n",
" <td>35 en 2025 según eInforma; actividad industria...</td>\n",
" <td>Operaciones/planificación de capacidad</td>\n",
" <td>El gerente describe cómo ausencias en taller p...</td>\n",
" <td>https://es.linkedin.com/posts/cristobal-hernan...</td>\n",
" <td>https://www.recapol.com/recapol-carrocerias-co...</td>\n",
" <td>Primera persona y autoría empresarial verifica...</td>\n",
" <td>Ficha archivada: textos_fuente/EXP-001.txt. Fe...</td>\n",
" <td>Organización y personas</td>\n",
" <td>Sobrecarga, ausencias y dependencia de persona...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>EXP-002</td>\n",
" <td>incluido</td>\n",
" <td>2025 aprox.</td>\n",
" <td>Alex Espel Ribera</td>\n",
" <td>Inprisa Autom</td>\n",
" <td>Fabricación/instalación industrial B2B</td>\n",
" <td>20 empleados informados para 2025; por debajo ...</td>\n",
" <td>Producción/compras/atención a clientes</td>\n",
" <td>Relato directo sobre retrasos de proyectos, pl...</td>\n",
" <td>https://es.linkedin.com/posts/alex-espel-riber...</td>\n",
" <td>https://www.inprisa.com/ | https://www.einform...</td>\n",
" <td>Autoría directiva y actividad industrial B2B v...</td>\n",
" <td>Ficha de exclusión archivada: textos_fuente/EX...</td>\n",
" <td>Planificación y operaciones</td>\n",
" <td>Urgencias, coordinación y planificación diaria</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>EXP-003</td>\n",
" <td>incluido</td>\n",
" <td>2026-10 aprox.</td>\n",
" <td>Javier Santos</td>\n",
" <td>Cyklop Strapesa</td>\n",
" <td>Fabricación de sistemas de embalaje industrial...</td>\n",
" <td>26 empleados en 2025 según eInforma; por debaj...</td>\n",
" <td>Operaciones/planta</td>\n",
" <td>El director general relata que las urgencias y...</td>\n",
" <td>https://es.linkedin.com/posts/javiersantospalo...</td>\n",
" <td>https://www.cyklop.es/ | https://www.einforma....</td>\n",
" <td>Autoría directiva y actividad industrial B2B v...</td>\n",
" <td>Ficha de exclusión archivada: textos_fuente/EX...</td>\n",
" <td>Planificación y operaciones</td>\n",
" <td>Urgencias, coordinación y planificación diaria</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id estado fecha_publicacion actor \\\n",
"0 EXP-001 incluido 2026-08 aprox. Cristóbal Hernández Mora \n",
"1 EXP-002 incluido 2025 aprox. Alex Espel Ribera \n",
"2 EXP-003 incluido 2026-10 aprox. Javier Santos \n",
"\n",
" empresa actividad \\\n",
"0 Recapol SA Fabricación y transformación de carrocerías pa... \n",
"1 Inprisa Autom Fabricación/instalación industrial B2B \n",
"2 Cyklop Strapesa Fabricación de sistemas de embalaje industrial... \n",
"\n",
" empleados_evidencia \\\n",
"0 35 en 2025 según eInforma; actividad industria... \n",
"1 20 empleados informados para 2025; por debajo ... \n",
"2 26 empleados en 2025 según eInforma; por debaj... \n",
"\n",
" proceso \\\n",
"0 Operaciones/planificación de capacidad \n",
"1 Producción/compras/atención a clientes \n",
"2 Operaciones/planta \n",
"\n",
" episodio_resumido \\\n",
"0 El gerente describe cómo ausencias en taller p... \n",
"1 Relato directo sobre retrasos de proyectos, pl... \n",
"2 El director general relata que las urgencias y... \n",
"\n",
" fuente_publicacion \\\n",
"0 https://es.linkedin.com/posts/cristobal-hernan... \n",
"1 https://es.linkedin.com/posts/alex-espel-riber... \n",
"2 https://es.linkedin.com/posts/javiersantospalo... \n",
"\n",
" fuente_empresa_o_tamano \\\n",
"0 https://www.recapol.com/recapol-carrocerias-co... \n",
"1 https://www.inprisa.com/ | https://www.einform... \n",
"2 https://www.cyklop.es/ | https://www.einforma.... \n",
"\n",
" criterio_observado \\\n",
"0 Primera persona y autoría empresarial verifica... \n",
"1 Autoría directiva y actividad industrial B2B v... \n",
"2 Autoría directiva y actividad industrial B2B v... \n",
"\n",
" notas \\\n",
"0 Ficha archivada: textos_fuente/EXP-001.txt. Fe... \n",
"1 Ficha de exclusión archivada: textos_fuente/EX... \n",
"2 Ficha de exclusión archivada: textos_fuente/EX... \n",
"\n",
" dimension_tipo \\\n",
"0 Organización y personas \n",
"1 Planificación y operaciones \n",
"2 Planificación y operaciones \n",
"\n",
" grupo_similitud \n",
"0 Sobrecarga, ausencias y dependencia de persona... \n",
"1 Urgencias, coordinación y planificación diaria \n",
"2 Urgencias, coordinación y planificación diaria "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path = os.path.join(os.getcwd(), \n",
" '07_muestra_exploratoria', \n",
" 'casos_agrupados_por_dimensiones.csv'\n",
" )\n",
"\n",
"df = pd.read_csv(path)\n",
"df.head(3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "deb945c5",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 7,
"id": "4672d52f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.DataFrame'>\n",
"RangeIndex: 90 entries, 0 to 89\n",
"Data columns (total 15 columns):\n",
" # Column Non-Null Count Dtype\n",
"--- ------ -------------- -----\n",
" 0 id 90 non-null str \n",
" 1 estado 90 non-null str \n",
" 2 fecha_publicacion 90 non-null str \n",
" 3 actor 90 non-null str \n",
" 4 empresa 90 non-null str \n",
" 5 actividad 90 non-null str \n",
" 6 empleados_evidencia 90 non-null str \n",
" 7 proceso 90 non-null str \n",
" 8 episodio_resumido 90 non-null str \n",
" 9 fuente_publicacion 90 non-null str \n",
" 10 fuente_empresa_o_tamano 90 non-null str \n",
" 11 criterio_observado 90 non-null str \n",
" 12 notas 90 non-null str \n",
" 13 dimension_tipo 90 non-null str \n",
" 14 grupo_similitud 90 non-null str \n",
"dtypes: str(15)\n",
"memory usage: 10.7 KB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "8037d49c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>estado</th>\n",
" <th>fecha_publicacion</th>\n",
" <th>actor</th>\n",
" <th>empresa</th>\n",
" <th>actividad</th>\n",
" <th>empleados_evidencia</th>\n",
" <th>proceso</th>\n",
" <th>episodio_resumido</th>\n",
" <th>fuente_publicacion</th>\n",
" <th>fuente_empresa_o_tamano</th>\n",
" <th>criterio_observado</th>\n",
" <th>notas</th>\n",
" <th>dimension_tipo</th>\n",
" <th>grupo_similitud</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>90</td>\n",
" <td>2</td>\n",
" <td>85</td>\n",
" <td>88</td>\n",
" <td>86</td>\n",
" <td>86</td>\n",
" <td>89</td>\n",
" <td>90</td>\n",
" <td>90</td>\n",
" <td>89</td>\n",
" <td>88</td>\n",
" <td>89</td>\n",
" <td>90</td>\n",
" <td>8</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>EXP-001</td>\n",
" <td>incluido</td>\n",
" <td>2026-08 aprox.</td>\n",
" <td>Sergio Ferrer Fernández</td>\n",
" <td>Stellantis España S.L. — planta de Vigo</td>\n",
" <td>Fabricación de vehículos de motor; automoción</td>\n",
" <td>90 empleados en 2026 segun eInforma/Empresite;...</td>\n",
" <td>Operaciones/planificación de capacidad</td>\n",
" <td>El gerente describe cómo ausencias en taller p...</td>\n",
" <td>https://es.linkedin.com/posts/rodrigo-moralejo...</td>\n",
" <td>https://www.einforma.com/informacion-empresa/f...</td>\n",
" <td>Autoría directiva y actividad industrial B2B v...</td>\n",
" <td>Ficha archivada: textos_fuente/EXP-001.txt. Fe...</td>\n",
" <td>Planificación y operaciones</td>\n",
" <td>Flujo de trabajo, capacidad y pedidos</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>1</td>\n",
" <td>89</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>21</td>\n",
" <td>13</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id estado fecha_publicacion actor \\\n",
"count 90 90 90 90 \n",
"unique 90 2 85 88 \n",
"top EXP-001 incluido 2026-08 aprox. Sergio Ferrer Fernández \n",
"freq 1 89 2 2 \n",
"\n",
" empresa \\\n",
"count 90 \n",
"unique 86 \n",
"top Stellantis España S.L. — planta de Vigo \n",
"freq 3 \n",
"\n",
" actividad \\\n",
"count 90 \n",
"unique 86 \n",
"top Fabricación de vehículos de motor; automoción \n",
"freq 5 \n",
"\n",
" empleados_evidencia \\\n",
"count 90 \n",
"unique 89 \n",
"top 90 empleados en 2026 segun eInforma/Empresite;... \n",
"freq 2 \n",
"\n",
" proceso \\\n",
"count 90 \n",
"unique 90 \n",
"top Operaciones/planificación de capacidad \n",
"freq 1 \n",
"\n",
" episodio_resumido \\\n",
"count 90 \n",
"unique 90 \n",
"top El gerente describe cómo ausencias en taller p... \n",
"freq 1 \n",
"\n",
" fuente_publicacion \\\n",
"count 90 \n",
"unique 89 \n",
"top https://es.linkedin.com/posts/rodrigo-moralejo... \n",
"freq 2 \n",
"\n",
" fuente_empresa_o_tamano \\\n",
"count 90 \n",
"unique 88 \n",
"top https://www.einforma.com/informacion-empresa/f... \n",
"freq 2 \n",
"\n",
" criterio_observado \\\n",
"count 90 \n",
"unique 89 \n",
"top Autoría directiva y actividad industrial B2B v... \n",
"freq 2 \n",
"\n",
" notas \\\n",
"count 90 \n",
"unique 90 \n",
"top Ficha archivada: textos_fuente/EXP-001.txt. Fe... \n",
"freq 1 \n",
"\n",
" dimension_tipo grupo_similitud \n",
"count 90 90 \n",
"unique 8 17 \n",
"top Planificación y operaciones Flujo de trabajo, capacidad y pedidos \n",
"freq 21 13 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include='all')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "2e94fc5a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"id 0\n",
"estado 0\n",
"fecha_publicacion 0\n",
"actor 0\n",
"empresa 0\n",
"actividad 0\n",
"empleados_evidencia 0\n",
"proceso 0\n",
"episodio_resumido 0\n",
"fuente_publicacion 0\n",
"fuente_empresa_o_tamano 0\n",
"criterio_observado 0\n",
"notas 0\n",
"dimension_tipo 0\n",
"grupo_similitud 0\n",
"dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.isna().sum()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6497c801",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.int64(0)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.duplicated().sum()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "2d648fe6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"--- estado (2 únicos)---\n",
"estado\n",
"incluido 89\n",
"excluido 1\n",
"Name: count, dtype: int64\n",
"\n",
"--- actor (88 únicos)---\n",
"actor\n",
"Sergio Ferrer Fernández 2\n",
"Sergio Ferrer Fernandez, CEO de Finestres Macrisal (publicacion personal) 2\n",
"Cristóbal Hernández Mora 1\n",
"Alex Espel Ribera 1\n",
"Javier Santos 1\n",
" ..\n",
"Joan Sánchez García, vinculado a ANSA Montajes Metálicos, S.L. en LinkedIn 1\n",
"Svelt Spain (cuenta corporativa; relato de proyecto conjunto) 1\n",
"Antonio Monteiro, gerente de MPS Soluciones 3D 1\n",
"Daniel F., director general/propietario (según perfil de LinkedIn) 1\n",
"Manuel Marrama Esteve, vinculado a STALART en LinkedIn 1\n",
"Name: count, Length: 88, dtype: int64\n",
"\n",
"--- actividad (86 únicos)---\n",
"actividad\n",
"Fabricación de vehículos de motor; automoción 5\n",
"Fabricación y transformación de carrocerías para vehículos industriales; B2B 1\n",
"Fabricación/instalación industrial B2B 1\n",
"Fabricación de sistemas de embalaje industrial B2B 1\n",
"Fabricación de ventanas y cerramientos aluminio/PVC para instaladores y otros clientes profesionales; Cataluña, España 1\n",
" ..\n",
"Fabricación y montaje de estructuras metálicas industriales; B2B 1\n",
"Fabricación de soluciones de acceso y equipamiento especial; suministro industrial B2B 1\n",
"Servicios de escaneado 3D, ingeniería inversa y fabricación aditiva para industria B2B 1\n",
"Fabricación y montaje de estructuras metálicas, calderería y bienes de equipo; B2B industrial 1\n",
"Diseño, fabricación y suministro de estructuras Steel Frame; B2B 1\n",
"Name: count, Length: 86, dtype: int64\n",
"\n",
"--- dimension_tipo (8 únicos)---\n",
"dimension_tipo\n",
"Planificación y operaciones 21\n",
"Continuidad y recuperación 18\n",
"Organización y personas 12\n",
"Demanda y estructura industrial 11\n",
"Equipos, instalaciones y seguridad 10\n",
"Sistemas y digitalización 7\n",
"Suministro y dependencias externas 6\n",
"Comercial y proyectos 5\n",
"Name: count, dtype: int64\n",
"\n",
"--- grupo_similitud (17 únicos)---\n",
"grupo_similitud\n",
"Flujo de trabajo, capacidad y pedidos 13\n",
"Ajuste, cierre o traslado de capacidad/planta 11\n",
"DANA: daños, interrupción y recuperación de planta/servicio 9\n",
"Fiabilidad, averías, mantenimiento y seguridad industrial 9\n",
"Incendio: parada, traslado y recuperación productiva 7\n",
"Adopción, integración y calidad de sistemas de información 6\n",
"Contratación, disponibilidad y formación de perfiles 6\n",
"Condiciones comerciales, coordinación de cliente y proyecto 5\n",
"Falta de componentes, servicios o recursos esenciales 5\n",
"Sobrecarga, ausencias y dependencia de personas clave 4\n",
"Urgencias, coordinación y planificación diaria 4\n",
"Control de producción, inventario y visibilidad operativa 4\n",
"Delegación, estructura y orientación organizativa 2\n",
"Interrupción técnica o retraso de puesta en marcha 2\n",
"Obsolescencia de equipos de proceso 1\n",
"Captura manual y transcripción de pedidos 1\n",
"Planificación de demanda, suministro y compras 1\n",
"Name: count, dtype: int64\n",
"\n",
"--- fuente_publicacion (89 únicos)---\n",
"fuente_publicacion\n",
"https://es.linkedin.com/posts/rodrigo-moralejo-248016123_porque-detr%C3%A1s-de-cada-f%C3%A1brica-hay-muchas-activity-7399358414637748224-eiik 2\n",
"https://es.linkedin.com/posts/cristobal-hernandez-mora-622989186_pymes-empresarios-activity-7492840134887964672-uLCL 1\n",
"https://es.linkedin.com/posts/alex-espel-ribera_crear-una-empresa-es-como-hacer-una-lasa%C3%B1a-activity-7302961121433444352-lJTL 1\n",
"https://es.linkedin.com/posts/javiersantospalomo_un-director-general-deber%C3%ADa-bajar-m%C3%A1s-a-planta-activity-7508405307010908160-5LXW 1\n",
"https://es.linkedin.com/posts/sergio-ferrer-fern%C3%A1ndez-50b52111a_hace-poco-rechazamos-un-pedido-grande-de-activity-7507719567067066369-cvx8 1\n",
" ..\n",
"https://es.linkedin.com/posts/joan-sg_te-lo-digo-claro-nadie-quiere-recibir-la-activity-7386431546712428545-bUZg 1\n",
"https://es.linkedin.com/pulse/el-proyecto-la-confianza-nos-eligen-svelt-spain-vhcbe 1\n",
"https://es.linkedin.com/posts/antonio-monteiro-99798414_fabricacion-ingenieria-industria-activity-7483067848039436289-LBrD 1\n",
"https://es.linkedin.com/pulse/por-qu%C3%A9-algunas-empresas-industriales-hemos-dejado-de-daniel-plkle 1\n",
"https://es.linkedin.com/posts/manuel-marrama-esteve-b2903230_se-nos-ha-ca%C3%ADdo-un-proyecto-el-dise%C3%B1o-cerrado-activity-7501169980604874754-dv8D 1\n",
"Name: count, Length: 89, dtype: int64\n"
]
}
],
"source": [
"def col_distribution(df):\n",
" col_array = [\"estado\", \"actor\", \"actividad\", \"dimension_tipo\", \"grupo_similitud\", \"fuente_publicacion\"]\n",
"\n",
" for col in col_array:\n",
" print(f\"\\n--- {col} ({df[col].nunique()} únicos)---\")\n",
" print(df[col].value_counts())\n",
"\n",
"col_distribution(df)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "1fcebc57",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Rango Temporal 2024-11-03 00:00:00 a 2026-10-22 00:00:00\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Toni Ramos\\AppData\\Local\\Temp\\ipykernel_6872\\4052223768.py:1: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n",
" df[\"fecha_publicacion\"] = pd.to_datetime(df[\"fecha_publicacion\"], errors='coerce')\n"
]
}
],
"source": [
"df[\"fecha_publicacion\"] = pd.to_datetime(df[\"fecha_publicacion\"], errors='coerce')\n",
"print(\"Rango Temporal\", df[\"fecha_publicacion\"].min(), \"a\", df[\"fecha_publicacion\"].max())"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "ff7a928e",
"metadata": {},
"outputs": [],
"source": [
"df[\"texto_normalizado\"] = df[\"episodio_resumido\"].str.lower()\n",
"df[\"longitud_texto\"] = df[\"texto_normalizado\"].str.len()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "3a6c453b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"89"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df[df[\"estado\"] == \"incluido\"].copy()\n",
"len(df)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "0550010e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dimension_tipo\n",
"Planificación y operaciones 21\n",
"Continuidad y recuperación 18\n",
"Organización y personas 11\n",
"Demanda y estructura industrial 11\n",
"Equipos, instalaciones y seguridad 10\n",
"Sistemas y digitalización 7\n",
"Suministro y dependencias externas 6\n",
"Comercial y proyectos 5\n",
"Name: count, dtype: int64"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"dimension_tipo\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "19d02aff",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"grupo_similitud\n",
"Flujo de trabajo, capacidad y pedidos 13\n",
"Ajuste, cierre o traslado de capacidad/planta 11\n",
"DANA: daños, interrupción y recuperación de planta/servicio 9\n",
"Fiabilidad, averías, mantenimiento y seguridad industrial 9\n",
"Incendio: parada, traslado y recuperación productiva 7\n",
"Adopción, integración y calidad de sistemas de información 6\n",
"Condiciones comerciales, coordinación de cliente y proyecto 5\n",
"Contratación, disponibilidad y formación de perfiles 5\n",
"Falta de componentes, servicios o recursos esenciales 5\n",
"Sobrecarga, ausencias y dependencia de personas clave 4\n",
"Urgencias, coordinación y planificación diaria 4\n",
"Control de producción, inventario y visibilidad operativa 4\n",
"Delegación, estructura y orientación organizativa 2\n",
"Interrupción técnica o retraso de puesta en marcha 2\n",
"Obsolescencia de equipos de proceso 1\n",
"Captura manual y transcripción de pedidos 1\n",
"Planificación de demanda, suministro y compras 1\n",
"Name: count, dtype: int64"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"grupo_similitud\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "038919d5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fecha_publicacion\n",
"2024-11 1\n",
"2024-12 1\n",
"2025-01 2\n",
"2025-03 1\n",
"2025-04 3\n",
"2025-05 1\n",
"2025-06 1\n",
"2025-07 2\n",
"2025-08 1\n",
"2025-09 1\n",
"2025-10 1\n",
"2025-11 3\n",
"2025-12 2\n",
"2026-01 3\n",
"2026-02 5\n",
"2026-03 1\n",
"2026-04 2\n",
"2026-05 4\n",
"2026-06 4\n",
"2026-07 2\n",
"2026-08 1\n",
"2026-09 3\n",
"2026-10 6\n",
"Freq: M, Name: count, dtype: int64"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"fecha_publicacion\"].dt.to_period(\"M\").value_counts().sort_index()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "f70379f0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 89.000000\n",
"mean 190.157303\n",
"std 81.263446\n",
"min 6.000000\n",
"25% 156.000000\n",
"50% 190.000000\n",
"75% 257.000000\n",
"max 341.000000\n",
"Name: longitud_texto, dtype: float64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"longitud_texto\"].describe()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "9e26a65c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.int64(52)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"actividad\"].str.contains(\"B2B\", case=False, na=False).sum()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "0dcfba56",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>episodio_resumido</th>\n",
" <th>grupo_similitud</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>EXP-032</td>\n",
" <td>control de calidad e información financiera</td>\n",
" <td>Adopción, integración y calidad de sistemas de...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>EXP-033</td>\n",
" <td>pedidos e incidencias</td>\n",
" <td>Control de producción, inventario y visibilida...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>EXP-036</td>\n",
" <td>Preimpresión y fabricación de planchas</td>\n",
" <td>Obsolescencia de equipos de proceso</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>EXP-038</td>\n",
" <td>Recepción y transcripción de pedidos B2B</td>\n",
" <td>Captura manual y transcripción de pedidos</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>EXP-042</td>\n",
" <td>Diseño</td>\n",
" <td>Planificación de demanda, suministro y compras</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>EXP-048</td>\n",
" <td>Fiabilidad productiva y mantenimiento preventivo</td>\n",
" <td>Fiabilidad, averías, mantenimiento y seguridad...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>EXP-051</td>\n",
" <td>Seguridad de instalaciones de la nave de montaje</td>\n",
" <td>Fiabilidad, averías, mantenimiento y seguridad...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id episodio_resumido \\\n",
"31 EXP-032 control de calidad e información financiera \n",
"32 EXP-033 pedidos e incidencias \n",
"35 EXP-036 Preimpresión y fabricación de planchas \n",
"37 EXP-038 Recepción y transcripción de pedidos B2B \n",
"41 EXP-042 Diseño \n",
"47 EXP-048 Fiabilidad productiva y mantenimiento preventivo \n",
"50 EXP-051 Seguridad de instalaciones de la nave de montaje \n",
"\n",
" grupo_similitud \n",
"31 Adopción, integración y calidad de sistemas de... \n",
"32 Control de producción, inventario y visibilida... \n",
"35 Obsolescencia de equipos de proceso \n",
"37 Captura manual y transcripción de pedidos \n",
"41 Planificación de demanda, suministro y compras \n",
"47 Fiabilidad, averías, mantenimiento y seguridad... \n",
"50 Fiabilidad, averías, mantenimiento y seguridad... "
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[df[\"longitud_texto\"] < 50][[\"id\", \"episodio_resumido\", \"grupo_similitud\"]]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "4c9a8514",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>fecha_publicacion</th>\n",
" <th>2024</th>\n",
" <th>2025</th>\n",
" <th>2026</th>\n",
" </tr>\n",
" <tr>\n",
" <th>grupo_similitud</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Adopción, integración y calidad de sistemas de información</th>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ajuste, cierre o traslado de capacidad/planta</th>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Condiciones comerciales, coordinación de cliente y proyecto</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Contratación, disponibilidad y formación de perfiles</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Control de producción, inventario y visibilidad operativa</th>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DANA: daños, interrupción y recuperación de planta/servicio</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Delegación, estructura y orientación organizativa</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Falta de componentes, servicios o recursos esenciales</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fiabilidad, averías, mantenimiento y seguridad industrial</th>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Flujo de trabajo, capacidad y pedidos</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Interrupción técnica o retraso de puesta en marcha</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Obsolescencia de equipos de proceso</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Planificación de demanda, suministro y compras</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sobrecarga, ausencias y dependencia de personas clave</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Urgencias, coordinación y planificación diaria</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"fecha_publicacion 2024 2025 2026\n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 0 2 0\n",
"Ajuste, cierre o traslado de capacidad/planta 0 2 9\n",
"Condiciones comerciales, coordinación de client... 0 0 1\n",
"Contratación, disponibilidad y formación de per... 0 1 2\n",
"Control de producción, inventario y visibilidad... 0 2 0\n",
"DANA: daños, interrupción y recuperación de pla... 1 1 0\n",
"Delegación, estructura y orientación organizativa 0 1 0\n",
"Falta de componentes, servicios o recursos esen... 0 1 4\n",
"Fiabilidad, averías, mantenimiento y seguridad ... 0 5 2\n",
"Flujo de trabajo, capacidad y pedidos 1 0 10\n",
"Interrupción técnica o retraso de puesta en marcha 0 1 1\n",
"Obsolescencia de equipos de proceso 0 0 1\n",
"Planificación de demanda, suministro y compras 0 1 0\n",
"Sobrecarga, ausencias y dependencia de personas... 0 1 0\n",
"Urgencias, coordinación y planificación diaria 0 0 1"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(df[\"grupo_similitud\"], df[\"fecha_publicacion\"].dt.to_period(\"Y\"))"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "d51bbe01",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>dimension_tipo</th>\n",
" <th>Comercial y proyectos</th>\n",
" <th>Continuidad y recuperación</th>\n",
" <th>Demanda y estructura industrial</th>\n",
" <th>Equipos, instalaciones y seguridad</th>\n",
" <th>Organización y personas</th>\n",
" <th>Planificación y operaciones</th>\n",
" <th>Sistemas y digitalización</th>\n",
" <th>Suministro y dependencias externas</th>\n",
" </tr>\n",
" <tr>\n",
" <th>grupo_similitud</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Adopción, integración y calidad de sistemas de información</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ajuste, cierre o traslado de capacidad/planta</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>11</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Captura manual y transcripción de pedidos</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Condiciones comerciales, coordinación de cliente y proyecto</th>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Contratación, disponibilidad y formación de perfiles</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Control de producción, inventario y visibilidad operativa</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>DANA: daños, interrupción y recuperación de planta/servicio</th>\n",
" <td>0</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Delegación, estructura y orientación organizativa</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Falta de componentes, servicios o recursos esenciales</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fiabilidad, averías, mantenimiento y seguridad industrial</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Flujo de trabajo, capacidad y pedidos</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>13</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Incendio: parada, traslado y recuperación productiva</th>\n",
" <td>0</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Interrupción técnica o retraso de puesta en marcha</th>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Obsolescencia de equipos de proceso</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Planificación de demanda, suministro y compras</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sobrecarga, ausencias y dependencia de personas clave</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Urgencias, coordinación y planificación diaria</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"dimension_tipo Comercial y proyectos \\\n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 0 \n",
"Ajuste, cierre o traslado de capacidad/planta 0 \n",
"Captura manual y transcripción de pedidos 0 \n",
"Condiciones comerciales, coordinación de client... 5 \n",
"Contratación, disponibilidad y formación de per... 0 \n",
"Control de producción, inventario y visibilidad... 0 \n",
"DANA: daños, interrupción y recuperación de pla... 0 \n",
"Delegación, estructura y orientación organizativa 0 \n",
"Falta de componentes, servicios o recursos esen... 0 \n",
"Fiabilidad, averías, mantenimiento y seguridad ... 0 \n",
"Flujo de trabajo, capacidad y pedidos 0 \n",
"Incendio: parada, traslado y recuperación produ... 0 \n",
"Interrupción técnica o retraso de puesta en marcha 0 \n",
"Obsolescencia de equipos de proceso 0 \n",
"Planificación de demanda, suministro y compras 0 \n",
"Sobrecarga, ausencias y dependencia de personas... 0 \n",
"Urgencias, coordinación y planificación diaria 0 \n",
"\n",
"dimension_tipo Continuidad y recuperación \\\n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 0 \n",
"Ajuste, cierre o traslado de capacidad/planta 0 \n",
"Captura manual y transcripción de pedidos 0 \n",
"Condiciones comerciales, coordinación de client... 0 \n",
"Contratación, disponibilidad y formación de per... 0 \n",
"Control de producción, inventario y visibilidad... 0 \n",
"DANA: daños, interrupción y recuperación de pla... 9 \n",
"Delegación, estructura y orientación organizativa 0 \n",
"Falta de componentes, servicios o recursos esen... 0 \n",
"Fiabilidad, averías, mantenimiento y seguridad ... 0 \n",
"Flujo de trabajo, capacidad y pedidos 0 \n",
"Incendio: parada, traslado y recuperación produ... 7 \n",
"Interrupción técnica o retraso de puesta en marcha 2 \n",
"Obsolescencia de equipos de proceso 0 \n",
"Planificación de demanda, suministro y compras 0 \n",
"Sobrecarga, ausencias y dependencia de personas... 0 \n",
"Urgencias, coordinación y planificación diaria 0 \n",
"\n",
"dimension_tipo Demanda y estructura industrial \\\n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 0 \n",
"Ajuste, cierre o traslado de capacidad/planta 11 \n",
"Captura manual y transcripción de pedidos 0 \n",
"Condiciones comerciales, coordinación de client... 0 \n",
"Contratación, disponibilidad y formación de per... 0 \n",
"Control de producción, inventario y visibilidad... 0 \n",
"DANA: daños, interrupción y recuperación de pla... 0 \n",
"Delegación, estructura y orientación organizativa 0 \n",
"Falta de componentes, servicios o recursos esen... 0 \n",
"Fiabilidad, averías, mantenimiento y seguridad ... 0 \n",
"Flujo de trabajo, capacidad y pedidos 0 \n",
"Incendio: parada, traslado y recuperación produ... 0 \n",
"Interrupción técnica o retraso de puesta en marcha 0 \n",
"Obsolescencia de equipos de proceso 0 \n",
"Planificación de demanda, suministro y compras 0 \n",
"Sobrecarga, ausencias y dependencia de personas... 0 \n",
"Urgencias, coordinación y planificación diaria 0 \n",
"\n",
"dimension_tipo Equipos, instalaciones y seguridad \\\n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 0 \n",
"Ajuste, cierre o traslado de capacidad/planta 0 \n",
"Captura manual y transcripción de pedidos 0 \n",
"Condiciones comerciales, coordinación de client... 0 \n",
"Contratación, disponibilidad y formación de per... 0 \n",
"Control de producción, inventario y visibilidad... 0 \n",
"DANA: daños, interrupción y recuperación de pla... 0 \n",
"Delegación, estructura y orientación organizativa 0 \n",
"Falta de componentes, servicios o recursos esen... 0 \n",
"Fiabilidad, averías, mantenimiento y seguridad ... 9 \n",
"Flujo de trabajo, capacidad y pedidos 0 \n",
"Incendio: parada, traslado y recuperación produ... 0 \n",
"Interrupción técnica o retraso de puesta en marcha 0 \n",
"Obsolescencia de equipos de proceso 1 \n",
"Planificación de demanda, suministro y compras 0 \n",
"Sobrecarga, ausencias y dependencia de personas... 0 \n",
"Urgencias, coordinación y planificación diaria 0 \n",
"\n",
"dimension_tipo Organización y personas \\\n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 0 \n",
"Ajuste, cierre o traslado de capacidad/planta 0 \n",
"Captura manual y transcripción de pedidos 0 \n",
"Condiciones comerciales, coordinación de client... 0 \n",
"Contratación, disponibilidad y formación de per... 5 \n",
"Control de producción, inventario y visibilidad... 0 \n",
"DANA: daños, interrupción y recuperación de pla... 0 \n",
"Delegación, estructura y orientación organizativa 2 \n",
"Falta de componentes, servicios o recursos esen... 0 \n",
"Fiabilidad, averías, mantenimiento y seguridad ... 0 \n",
"Flujo de trabajo, capacidad y pedidos 0 \n",
"Incendio: parada, traslado y recuperación produ... 0 \n",
"Interrupción técnica o retraso de puesta en marcha 0 \n",
"Obsolescencia de equipos de proceso 0 \n",
"Planificación de demanda, suministro y compras 0 \n",
"Sobrecarga, ausencias y dependencia de personas... 4 \n",
"Urgencias, coordinación y planificación diaria 0 \n",
"\n",
"dimension_tipo Planificación y operaciones \\\n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 0 \n",
"Ajuste, cierre o traslado de capacidad/planta 0 \n",
"Captura manual y transcripción de pedidos 0 \n",
"Condiciones comerciales, coordinación de client... 0 \n",
"Contratación, disponibilidad y formación de per... 0 \n",
"Control de producción, inventario y visibilidad... 4 \n",
"DANA: daños, interrupción y recuperación de pla... 0 \n",
"Delegación, estructura y orientación organizativa 0 \n",
"Falta de componentes, servicios o recursos esen... 0 \n",
"Fiabilidad, averías, mantenimiento y seguridad ... 0 \n",
"Flujo de trabajo, capacidad y pedidos 13 \n",
"Incendio: parada, traslado y recuperación produ... 0 \n",
"Interrupción técnica o retraso de puesta en marcha 0 \n",
"Obsolescencia de equipos de proceso 0 \n",
"Planificación de demanda, suministro y compras 0 \n",
"Sobrecarga, ausencias y dependencia de personas... 0 \n",
"Urgencias, coordinación y planificación diaria 4 \n",
"\n",
"dimension_tipo Sistemas y digitalización \\\n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 6 \n",
"Ajuste, cierre o traslado de capacidad/planta 0 \n",
"Captura manual y transcripción de pedidos 1 \n",
"Condiciones comerciales, coordinación de client... 0 \n",
"Contratación, disponibilidad y formación de per... 0 \n",
"Control de producción, inventario y visibilidad... 0 \n",
"DANA: daños, interrupción y recuperación de pla... 0 \n",
"Delegación, estructura y orientación organizativa 0 \n",
"Falta de componentes, servicios o recursos esen... 0 \n",
"Fiabilidad, averías, mantenimiento y seguridad ... 0 \n",
"Flujo de trabajo, capacidad y pedidos 0 \n",
"Incendio: parada, traslado y recuperación produ... 0 \n",
"Interrupción técnica o retraso de puesta en marcha 0 \n",
"Obsolescencia de equipos de proceso 0 \n",
"Planificación de demanda, suministro y compras 0 \n",
"Sobrecarga, ausencias y dependencia de personas... 0 \n",
"Urgencias, coordinación y planificación diaria 0 \n",
"\n",
"dimension_tipo Suministro y dependencias externas \n",
"grupo_similitud \n",
"Adopción, integración y calidad de sistemas de ... 0 \n",
"Ajuste, cierre o traslado de capacidad/planta 0 \n",
"Captura manual y transcripción de pedidos 0 \n",
"Condiciones comerciales, coordinación de client... 0 \n",
"Contratación, disponibilidad y formación de per... 0 \n",
"Control de producción, inventario y visibilidad... 0 \n",
"DANA: daños, interrupción y recuperación de pla... 0 \n",
"Delegación, estructura y orientación organizativa 0 \n",
"Falta de componentes, servicios o recursos esen... 5 \n",
"Fiabilidad, averías, mantenimiento y seguridad ... 0 \n",
"Flujo de trabajo, capacidad y pedidos 0 \n",
"Incendio: parada, traslado y recuperación produ... 0 \n",
"Interrupción técnica o retraso de puesta en marcha 0 \n",
"Obsolescencia de equipos de proceso 0 \n",
"Planificación de demanda, suministro y compras 1 \n",
"Sobrecarga, ausencias y dependencia de personas... 0 \n",
"Urgencias, coordinación y planificación diaria 0 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(df[\"grupo_similitud\"], df[\"dimension_tipo\"])"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "e9f0dd9a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" excel: 0\n",
" whatsapp: 0\n",
" manual: 3\n",
" papel: 1\n",
" a mano: 0\n",
" hoja de calculo: 0\n",
" software: 0\n",
" erp: 2\n",
" app: 0\n",
" llamada: 0\n",
" email: 0\n"
]
}
],
"source": [
"communication_keywords = [\"excel\", \"whatsapp\", \"manual\", \"papel\", \"a mano\", \"hoja de calculo\",\n",
" \"software\", \"erp\", \"app\", \"llamada\", \"email\"]\n",
"for kw in communication_keywords:\n",
" print(f\"{kw:>16}: {df['texto_normalizado'].str.contains(kw, na=False).sum()}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3312e42c",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.14.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}