From fbea9580350b57f18fa5ca207ee8194ccef3514c Mon Sep 17 00:00:00 2001 From: CarlosGonzalezG <100364132@alumnos.uc3m.es> Date: Fri, 28 Jun 2024 10:41:04 +0200 Subject: [PATCH] New update to download zgz in 2 steps first ids and then all contracts from another endpoint --- .gitignore | 1 + descarga_minors/README.md | 14 +- .../descarga_contratos_mad_zgz_gencat.py | 75 +- descarga_minors/parsing_zgz_mad_2_place.ipynb | 9582 +++++++---------- 4 files changed, 4185 insertions(+), 5487 deletions(-) diff --git a/.gitignore b/.gitignore index 7d35014..b0c6804 100755 --- a/.gitignore +++ b/.gitignore @@ -161,3 +161,4 @@ notebooks # folders minors_madrid/ minors_zaragoza/ +DESCARGAS/ diff --git a/descarga_minors/README.md b/descarga_minors/README.md index d44bc20..e8685a2 100755 --- a/descarga_minors/README.md +++ b/descarga_minors/README.md @@ -1,6 +1,6 @@ # Script de Descarga de Datos de Contratación -Este script en Python facilita la descarga automatizada de datos de contratos menores desde los portales de transparencia de los Ayuntamientos de Zaragoza y Madrid, así como de la Generalitat de Catalunya. Además, ofrece la opción de descargar todos los conjuntos de datos de manera simultánea. +Este script en Python facilita la descarga automatizada de datos de contratos menores desde los portales de transparencia de los Ayuntamientos de Zaragoza y Madrid, así como de la Generalitat de Catalunya de manera independiente. Además, ofrece la opción de descargar todos los conjuntos de datos de manera simultánea. ## Requisitos @@ -21,25 +21,27 @@ pip install requests beautifulsoup4 pandas sodapy - **Zaragoza** - Descargar contratos menores y guardarlos en un archivo JSON: - python3 script.py zaragoza --file_path /ruta/a contratos_menores_zaragoza.json + python3 descarga_contratos_mad_zgz_gencat.py zaragoza --file_path /ruta/a contratos_menores_zaragoza.json - **Madrid** - Descargar contratos menores desde el año 2018: - python3 script.py madrid --start_year 2018 --file_path /ruta/a/contratos_menores_madrid + python3 descarga_contratos_mad_zgz_gencat.py madrid --start_year 2018 --file_path /ruta/a/contratos_menores_madrid - **Cataluña** - Descargar datos de contratación pública: - python3 script.py gencat --file_path /ruta/a/contratacion_publica_catalunya.csv + python3 descarga_contratos_mad_zgz_gencat.py gencat --file_path /ruta/a/contratacion_publica_catalunya.csv El comando principal para ejecutar el script y descargar simultáneamente todos los datos es el siguiente: - python3 script.py all --file_path /ruta/a/destino/descargas + python3 descarga_contratos_mad_zgz_gencat.py all --file_path /ruta/a/destino/descargas ### Funcionamiento detallado El script incluye funciones específicas para la descarga de datos: - download_contracts_gencat: Descarga datos desde la Generalitat de Catalunya. -- download_contracts_zaragoza: Realiza solicitudes a la API de Zaragoza y almacena los resultados en formato JSON. +- get_contract_ids: Es una función auxiliar para recoger los id de la API de Zaragoza +- download_contracts_zaragoza: Realiza solicitudes a la API de Zaragoza y almacena los resultados en formato JSON en 2 pasos, una primera función que interactúa con la API para recoger todos los id cuyo procedimiento.id es 10 (indica contrato menor) con la función get_contract_ids y una segunda llamada a otro endpoint para obtener la información completa de los contratos. +- download_zaragoza_wrapper: Actúa como una función wrapper para hacer la descarga de zaragoza en 2 pasos. - download_contracts_madrid: Descarga archivos directamente desde la página de transparencia de Madrid basados en el año de publicación. - download_all_contracts: Coordina la descarga de todos los datos mencionados utilizando las funciones correspondientes. diff --git a/descarga_minors/descarga_contratos_mad_zgz_gencat.py b/descarga_minors/descarga_contratos_mad_zgz_gencat.py index 4d9733a..9810fb4 100644 --- a/descarga_minors/descarga_contratos_mad_zgz_gencat.py +++ b/descarga_minors/descarga_contratos_mad_zgz_gencat.py @@ -49,39 +49,66 @@ def download_contracts_gencat(domain, dataset_identifier, destination_directory, file_path = os.path.join(destination_directory, file_name) full_df.to_csv(file_path, index=False) print(f"Datos descargados y guardados en {file_path}") - -def download_contracts_zaragoza(base_url, params, file_path): + +# Auxiliary function to get contract IDs from Zaragoza's API +def get_contract_ids(base_url, params): # Initialize a list to store contract details and a counter for downloaded contracts. - contracts = [] + contract_ids = [] total_downloaded = 0 - + # Continuously request data until all pages are processed. while True: response = requests.get(base_url, params=params) # Check if the HTTP request was successful. if response.status_code != 200: - print(f"Request error: {response.status_code}") + print(f"Error de solicitud: {response.status_code}") break - + # Parse JSON response and extend the contract list with new data. data = response.json() - contracts.extend(data['result']) + contract_ids.extend([item['id'] for item in data['result']]) total_downloaded += len(data['result']) - + # Print the progress of downloaded contracts. print(f"Descargados {total_downloaded} de {data['totalCount']} contracts.") - + # Check if there are more pages of data to request. if params['start'] + params['rows'] < data['totalCount']: params['start'] += params['rows'] else: break + + return contract_ids +def download_contracts_zaragoza(contract_ids, detail_url_template, file_path): + """Descarga los detalles de cada contrato y los guarda en un archivo JSON.""" + contracts = [] + total_contracts = len(contract_ids) + processed_contracts = 0 + + for contract_id in contract_ids: + detail_url = f"{detail_url_template}/{contract_id}.json" + response = requests.get(detail_url) + if response.status_code == 200: + contracts.append(response.json()) + else: + print(f"Error al obtener detalles del contrato {contract_id}: {response.status_code}") + + processed_contracts += 1 + print(f"Procesado {processed_contracts}/{total_contracts} contratos.") + # Guardar los resultados en un archivo JSON with open(file_path, 'w', encoding='utf-8') as file: json.dump(contracts, file, ensure_ascii=False, indent=4) - print(f"Datos descargados y guardados en {file_path}") + + print(f"Detalles de los contratos descargados y guardados en {file_path}") +def download_zaragoza_wrapper(base_url, params, detail_base_url, file_path): + # Obtener los IDs de los contratos primero + contract_ids = get_contract_ids(base_url, params) + # Luego descargar los detalles de los contratos + download_contracts_zaragoza(contract_ids, detail_base_url, file_path) + def download_contracts_madrid(url, destination_directory, start_year,file_path): # Ensure the destination directory exists, create if necessary. if not os.path.exists(destination_directory): @@ -126,11 +153,17 @@ def download_all_contracts(destination_directory): } }, { - "func": download_contracts_zaragoza, + "func": download_zaragoza_wrapper, "params": { "base_url": 'https://www.zaragoza.es/sede/servicio/contratacion-publica/contrato.json', - "params": {'contratoMenor': 'true', 'start': 0, 'rows': 50}, - "file_path": os.path.join(destination_directory, "contratos_menores_zaragoza.json") + "params": { + 'procedimiento.id': '10', + 'fl': 'id', + 'start': 0, + 'rows': 50 + }, + "detail_base_url": "https://www.zaragoza.es/sede/servicio/contratacion-publica", + "file_path": os.path.join(destination_directory, "contratos_zaragoza_detalles.json") } }, { @@ -142,8 +175,7 @@ def download_all_contracts(destination_directory): "file_path": "DESCARGAS/" } } - ] - + ] # Descargar cada dataset for dataset in datasets: func = dataset["func"] @@ -159,9 +191,18 @@ def main(): args = parser.parse_args() if args.city == 'zaragoza': + # Configuraciones específicas para Zaragoza base_url = 'https://www.zaragoza.es/sede/servicio/contratacion-publica/contrato.json' - if args.file_path: - download_contracts_zaragoza(base_url, 0, 50, os.path.join(args.file_path, "contratos_menores_zaragoza.json")) + params = { + 'procedimiento.id': '10', + 'fl': 'id', + 'start': 0, + 'rows': 50 + } + detail_base_url = 'https://www.zaragoza.es/sede/servicio/contratacion-publica' + file_path = os.path.join(args.file_path, "contratos_menores_zaragoza.json") + download_zaragoza_wrapper(base_url, params, detail_base_url, file_path) + elif args.city == 'madrid': start_url = 'https://transparencia.madrid.es/portales/transparencia/es/Economia-y-presupuestos/Contratacion/Contratacion-administrativa/Contratos-menores' if args.file_path: diff --git a/descarga_minors/parsing_zgz_mad_2_place.ipynb b/descarga_minors/parsing_zgz_mad_2_place.ipynb index 21c2b8d..324ffea 100644 --- a/descarga_minors/parsing_zgz_mad_2_place.ipynb +++ b/descarga_minors/parsing_zgz_mad_2_place.ipynb @@ -2,14 +2,16 @@ "cells": [ { "cell_type": "code", - "execution_count": 28, + "execution_count": 1, "id": "7f8f4500", "metadata": {}, "outputs": [], "source": [ + "from datetime import datetime\n", + "from dateutil import parser\n", "import pandas as pd\n", - "import json\n", - "import numpy as np" + "import numpy as np\n", + "import json" ] }, { @@ -22,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 77, "id": "66cee08d", "metadata": {}, "outputs": [], @@ -30,983 +32,1973 @@ "# Load JSON data with pandas\n", "path_json = '/export/usuarios_ml4ds/cggamella/sproc/DESCARGAS/contratos_menores_zaragoza.json'\n", "df = pd.read_json(path_json,orient=\"records\")\n", - "pd.set_option('display.max_columns', 500)" + "#pd.set_option('display.max_columns', 500)" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "604d1133", + "execution_count": 78, + "id": "70bf3de0", + "metadata": {}, + "outputs": [], + "source": [ + "def extract_field(data, key):\n", + " \"\"\" \n", + " Safely extracts a value from a dictionary using the provided key.\n", + " This function handles exceptions to ensure the program does not crash if the key is not found or if the input is not a dictionary.\n", + " \"\"\"\n", + " try:\n", + " return data[key]\n", + " except (TypeError, KeyError):\n", + " return None\n", + "\n", + "def extract_from_list_of_dicts(lst, key):\n", + " \"\"\"\n", + " Safely extracts a value from the first dictionary in a list using the specified key.\n", + " This function checks if the input is a list and if it contains dictionaries before attempting to extract the value to avoid errors.\n", + " \"\"\"\n", + " if lst and isinstance(lst, list):\n", + " return lst[0].get(key, None)\n", + " return None\n", + "\n", + "def extract_nested_field(data, path):\n", + " \"\"\"\"\n", + " Attempts to retrieve a value from a nested structure of dictionaries/lists using a list of keys/indices to navigate the path.\n", + " This function iteratively accesses deeper levels of the data structure, handling exceptions if the path is incorrect or broken.\n", + " \"\"\"\n", + " for key in path:\n", + " try:\n", + " data = data[key]\n", + " except (TypeError, KeyError, IndexError):\n", + " return None\n", + " return data\n", + "\n", + "def extract_nested_field_from_list(lst, path):\n", + " \"\"\"\n", + " Extracts a nested field from a list of dictionaries, following a specified path of keys.\n", + " This function iterates through each dictionary in the list, trying to navigate to the nested field according to the path, while handling exceptions if the path does not exist.\n", + " \"\"\"\n", + " if lst and isinstance(lst, list):\n", + " for item in lst:\n", + " data = item\n", + " try:\n", + " for key in path:\n", + " data = data[key]\n", + " return data\n", + " except (TypeError, KeyError, IndexError):\n", + " continue\n", + " return None\n", + "\n", + "# Extracting the fields of column 'type'\n", + "df['type.id'] = df['type'].apply(lambda x: extract_field(x, 'id'))\n", + "df['type.title'] = df['type'].apply(lambda x: extract_field(x, 'title'))\n", + "df['type.type'] = df['type'].apply(lambda x: extract_field(x, 'type'))\n", + "\n", + "# Extracting the fields of column 'procedimiento'\n", + "df['procedimiento.id'] = df['procedimiento'].apply(lambda x: extract_field(x, 'id'))\n", + "df['procedimiento.nombre'] = df['procedimiento'].apply(lambda x: extract_field(x, 'nombre'))\n", + "\n", + "# Extracting the fields of column 'entity'\n", + "df['entity.id'] = df['entity'].apply(lambda x: extract_field(x, 'id'))\n", + "df['entity.title'] = df['entity'].apply(lambda x: extract_field(x, 'title'))\n", + "df['entity.lastUpdated'] = df['entity'].apply(lambda x: extract_field(x, 'lastUpdated'))\n", + "df['entity.schema'] = df['entity'].apply(lambda x: extract_field(x, 'schema'))\n", + "df['entity.idSchema'] = df['entity'].apply(lambda x: extract_field(x, 'idSchema'))\n", + "\n", + "# Extracting the fields of column 'status'\n", + "df['status.id'] = df['status'].apply(lambda x: extract_field(x, 'id'))\n", + "df['status.title'] = df['status'].apply(lambda x: extract_field(x, 'title'))\n", + "\n", + "# Extracting the fields of column 'cpv'\n", + "df['cpv.id'] = df['cpv'].apply(lambda x: extract_from_list_of_dicts(x, 'id'))\n", + "df['cpv.titulo'] = df['cpv'].apply(lambda x: extract_from_list_of_dicts(x, 'titulo'))\n", + "\n", + "# Extracting the fields of column 'servicio'\n", + "df['servicio.id'] = df['servicio'].apply(lambda x: extract_field(x, 'id'))\n", + "df['servicio.dir3'] = df['servicio'].apply(lambda x: extract_field(x, 'dir3'))\n", + "df['servicio.title'] = df['servicio'].apply(lambda x: extract_field(x, 'title'))\n", + "df['servicio.phone'] = df['servicio'].apply(lambda x: extract_field(x, 'phone'))\n", + "df['servicio.postal_code'] = df['servicio'].apply(lambda x: extract_field(x, 'postal_code'))\n", + "df['servicio.nivelAdministracion'] = df['servicio'].apply(lambda x: extract_field(x, 'nivelAdministracion'))\n", + "df['servicio.tipoEntidadPublica'] = df['servicio'].apply(lambda x: extract_field(x, 'tipoEntidadPublica'))\n", + "df['servicio.nivelJerarquico'] = df['servicio'].apply(lambda x: extract_field(x, 'nivelJerarquico'))\n", + "df['servicio.unidadSuperior'] = df['servicio'].apply(lambda x: extract_field(x, 'unidadSuperior'))\n", + "df['servicio.unidadRaiz'] = df['servicio'].apply(lambda x: extract_field(x, 'unidadRaiz'))\n", + "df['servicio.status'] = df['servicio'].apply(lambda x: extract_field(x, 'status'))\n", + "df['servicio.headOf'] = df['servicio'].apply(lambda x: extract_field(x, 'headOf'))\n", + "df['servicio.creationDate'] = df['servicio'].apply(lambda x: extract_field(x, 'creationDate'))\n", + " \n", + "# Extracting the fields of column 'organoContratante'\n", + "df['organoContratante.id'] = df['organoContratante'].apply(lambda x: extract_field(x, 'id'))\n", + "df['organoContratante.dir3'] = df['organoContratante'].apply(lambda x: extract_field(x, 'dir3'))\n", + "df['organoContratante.title'] = df['organoContratante'].apply(lambda x: extract_field(x, 'title'))\n", + "df['organoContratante.phone'] = df['organoContratante'].apply(lambda x: extract_field(x, 'phone'))\n", + "df['organoContratante.postal_code'] = df['organoContratante'].apply(lambda x: extract_field(x, 'postal_code'))\n", + "df['organoContratante.nivelAdministracion'] = df['organoContratante'].apply(lambda x: extract_field(x, 'nivelAdministracion'))\n", + "df['organoContratante.tipoEntidadPublica'] = df['organoContratante'].apply(lambda x: extract_field(x, 'tipoEntidadPublica'))\n", + "df['organoContratante.nivelJerarquico'] = df['organoContratante'].apply(lambda x: extract_field(x, 'nivelJerarquico'))\n", + "df['organoContratante.unidadSuperior'] = df['organoContratante'].apply(lambda x: extract_field(x, 'unidadSuperior'))\n", + "df['organoContratante.unidadRaiz'] = df['organoContratante'].apply(lambda x: extract_field(x, 'unidadRaiz'))\n", + "df['organoContratante.status'] = df['organoContratante'].apply(lambda x: extract_field(x, 'status'))\n", + "df['organoContratante.headOf'] = df['organoContratante'].apply(lambda x: extract_field(x, 'headOf'))\n", + "df['organoContratante.creationDate'] = df['organoContratante'].apply(lambda x: extract_field(x, 'creationDate'))\n", + "\n", + "fields = {\n", + " 'address.id': ['address', 'id'],\n", + " 'address.address': ['address', 'address'],\n", + " 'address.postal_code': ['address', 'postal_code'],\n", + " 'address.locality': ['address', 'locality'],\n", + " 'address.countryName': ['address', 'countryName'],\n", + " 'address.geometry.type': ['address', 'geometry', 'type'],\n", + " 'address.geometry.coordinates': ['address', 'geometry', 'coordinates'],\n", + "}\n", + "\n", + "# Extracting the fields nested at 'servicio.address' and 'organoContratante.address'\n", + "for field, path in fields.items():\n", + " df[f'servicio.{field}'] = df['servicio'].apply(lambda x: extract_nested_field(x, path))\n", + " df[f'organoContratante.{field}'] = df['organoContratante'].apply(lambda x: extract_nested_field(x, path))\n", + "\n", + "# Extracting the fields of 'criterios' field\n", + "df['criterio.id'] = df['criterios'].apply(lambda x: extract_from_list_of_dicts(x, 'idCriterio'))\n", + "df['criterio.description'] = df['criterios'].apply(lambda x: extract_from_list_of_dicts(x, 'description'))\n", + "df['criterio.title'] = df['criterios'].apply(lambda x: extract_from_list_of_dicts(x, 'title'))\n", + "df['criterio.peso'] = df['criterios'].apply(lambda x: extract_from_list_of_dicts(x, 'peso'))\n", + "# Extracting the fields nested in 'criterios.tipo' -> 'id' and 'title'\n", + "df['criterio.tipo.id'] = df['criterios'].apply(lambda x: extract_nested_field_from_list(x, ['tipo', 'id']))\n", + "df['criterio.tipo.title'] = df['criterios'].apply(lambda x: extract_nested_field_from_list(x, ['tipo', 'title']))\n", + "\n", + "# Extracting the fields of 'ofertas' field\n", + "df['ofertas.id'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'id'))\n", + "df['ofertas.fechaAdjudicacion'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'fechaAdjudicacion'))\n", + "df['ofertas.fechaFormalizacion'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'fechaFormalizacion'))\n", + "df['ofertas.importeSinIVA'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'importeSinIVA'))\n", + "df['ofertas.canon'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'canon'))\n", + "df['ofertas.autonomo'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'autonomo'))\n", + "df['ofertas.ganador'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'ganador'))\n", + "df['ofertas.importeConIVA'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'importeConIVA'))\n", + "df['ofertas.iva'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'iva'))\n", + "df['ofertas.precioUnitario'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'precioUnitario'))\n", + "\n", + "# Extracting nested fields in 'ofertas.empresa' REVISAR PORQUE EN OCASIONES TIENEN MÁS DE UNA ENTRADA\n", + "df['ofertas.empresa.idEmpresa'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'idEmpresa']))\n", + "df['ofertas.empresa.nombre'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'nombre']))\n", + "df['ofertas.empresa.nif'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'nif']))\n", + "df['ofertas.empresa.openCorporateUrl'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'openCorporateUrl']))\n", + "df['ofertas.empresa.esUte'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'esUte']))\n", + "df['ofertas.empresa.autonomo'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'autonomo']))\n", + "\n", + "# Remove original cols where data where nested\n", + "df.drop(['type','ofertas','procedimiento','entity','status','cpv','servicio','criterios','organoContratante'], axis=1, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "0ef8ae7d", + "metadata": {}, + "outputs": [], + "source": [ + "valores_unicos = df['valorEstimado'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "22ffcd27", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.float64" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(valores_unicos[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "e7e8ca87", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10 Pendiente de Adjudicar\n", + "11 Adjudicación\n", + "12 Adjudicación\n", + "13 Adjudicación\n", + "14 En Licitación\n", + "15 Contrato Formalizado \n", + "16 Pendiente de Adjudicar\n", + "17 Adjudicación\n", + "18 Contrato Formalizado \n", + "19 Pendiente de Adjudicar\n", + "Name: status.title, dtype: object" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['status.title'].iloc[10:20]" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "3058b187", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10 1\n", + "11 5\n", + "12 5\n", + "13 5\n", + "14 0\n", + "15 6\n", + "16 1\n", + "17 5\n", + "18 6\n", + "19 1\n", + "Name: status.id, dtype: int64" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['status.id'].iloc[10:20]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "cade5534", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10 1\n", + "11 5\n", + "12 5\n", + "13 5\n", + "14 0\n", + "15 6\n", + "16 1\n", + "17 5\n", + "18 6\n", + "19 1\n", + "Name: status.id, dtype: int64" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['status.id'].iloc[10:20]" + ] + }, + { + "cell_type": "code", + "execution_count": 626, + "id": "ed2e79c3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 626, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(df_minors['ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.TaxExclusiveAmount'].iloc[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 615, + "id": "42602846", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Valores únicos de procedimiento.id: [10, 1, 15]\n" + ] + } + ], + "source": [ + "# Obtener valores únicos de 'procedimiento.id'\n", + "valores_unicos = df['procedimiento.id'].unique()\n", + "\n", + "# Filtrar el DataFrame para obtener solo los contratos con 'procedimiento.id' igual a 10\n", + "contratos_filtro = df[df['procedimiento.id'] == 15]\n", + "\n", + "# Mostrar la lista de valores únicos y el DataFrame filtrado\n", + "print(\"Valores únicos de procedimiento.id:\", list(valores_unicos))" + ] + }, + { + "cell_type": "code", + "execution_count": 674, + "id": "8df1d2ed", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['id', 'title', 'expediente', 'numeroSEA', 'contratoMenor',\n", + " 'fechaPresentacion', 'duracion', 'fechaContrato', 'lastUpdated',\n", + " 'pubDate',\n", + " ...\n", + " 'ofertas.ganador', 'ofertas.importeConIVA', 'ofertas.iva',\n", + " 'ofertas.precioUnitario', 'ofertas.empresa.idEmpresa',\n", + " 'ofertas.empresa.nombre', 'ofertas.empresa.nif',\n", + " 'ofertas.empresa.openCorporateUrl', 'ofertas.empresa.esUte',\n", + " 'ofertas.empresa.autonomo'],\n", + " dtype='object', length=106)" + ] + }, + "execution_count": 674, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "189131dd", + "metadata": {}, + "outputs": [], + "source": [ + "id_to_place_mapping = {\n", + " 0: np.nan,\n", + " 1: np.nan,\n", + " 2: 1,\n", + " 3: 2,\n", + " 4: 4,\n", + " 5: 8,\n", + " 6: 9,\n", + " 7: 3,\n", + " 8: 5,\n", + " 9: 9,\n", + " 10: 4,\n", + " 11: 4,\n", + " 12: 9,\n", + " 13: 8,\n", + " 14: 9\n", + "}\n", + "\n", + "title_to_place_mapping = {\n", + " \"En Licitación\": \"PUB\",\n", + " \"Pendiente de Adjudicar\": \"EV\",\n", + " \"Adjudicación Provisional\": \"ADJ\",\n", + " \"Adjudicación Definitiva\": \"ADJ\",\n", + " \"Suspendida la licitación\": \"ANUL\",\n", + " \"Adjudicación\": \"ADJ\",\n", + " \"Contrato Formalizado\": \"RES\",\n", + " \"Desierto\": \"RES\",\n", + " \"Renuncia\": \"RES\",\n", + " \"Modificación del Contrato\": \"RES\",\n", + " \"Cancelado\": \"ANUL\",\n", + " \"Desistido\": \"ANUL\",\n", + " \"Resuelto\": \"RES\",\n", + " \"Parcialmente Adjudicado\": \"ADJ\",\n", + " \"Parcialmente Formalizado\": \"ADJ\"\n", + "}\n", + "\n", + "def convert_to_ndarray(item):\n", + " # Asegurarse de que el item es un número, si no es así, lanzar un TypeError\n", + " if not isinstance(item, np.str):\n", + " item = np.str(item)\n", + " # Convertir el número a string y guardarlo en un numpy.ndarray con dtype=object\n", + " return np.array([str(item)], dtype=object)\n", + "\n", + "def convert_date_to_array(date_str, output_format='%Y-%m-%d'):\n", + " try:\n", + " # Parsear la fecha inicial\n", + " parsed_date = datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%S')\n", + " # Formatear la fecha al nuevo formato\n", + " formatted_date = parsed_date.strftime(output_format)\n", + " # Retornar como numpy array con dtype=object\n", + " return np.array([formatted_date], dtype=object)\n", + " except ValueError as e:\n", + " # Manejar posibles errores de formato de fecha\n", + " raise ValueError(f\"Error al parsear la fecha: {e}\")\n", + "\n", + "def float64_to_array(item):\n", + " # Convertir el item a float64 si no lo es\n", + " if not isinstance(item, np.float64):\n", + " item = np.float64(item)\n", + " # Convertir el número a cadena y guardarlo en un numpy.ndarray con dtype=object\n", + " return np.array([str(item)], dtype=object)\n", + "\n", + "def convert_int64_to_float64(value):\n", + " # Convertir el valor a numpy.float64\n", + " return np.float64(value)\n", + "\n", + "def convert_to_timestamp(date_str, tz='UTC'):\n", + " if not isinstance(date_str, str):\n", + " return pd.NaT \n", + " try:\n", + " parsed_date = parser.parse(date_str)\n", + " timestamp = pd.Timestamp(parsed_date, tz=tz)\n", + " return timestamp\n", + " except ValueError:\n", + " return pd.NaT " + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "25b55202", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5 0\n", + "6 0\n", + "7 0\n", + "8 6\n", + "9 0\n", + "10 1\n", + "11 5\n", + "12 5\n", + "13 5\n", + "Name: status.id, dtype: int64" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['status.id'].iloc[5:14]" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "id": "2dcdb474", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5 0\n", + "6 0\n", + "7 0\n", + "8 6\n", + "9 0\n", + "10 1\n", + "11 5\n", + "12 5\n", + "13 5\n", + "Name: status.id, dtype: int64" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['status.id'].iloc[5:14]" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "id": "2ce776f0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5 En Licitación\n", + "6 En Licitación\n", + "7 En Licitación\n", + "8 Contrato Formalizado \n", + "9 En Licitación\n", + "10 Pendiente de Adjudicar\n", + "11 Adjudicación\n", + "12 Adjudicación\n", + "13 Adjudicación\n", + "Name: status.title, dtype: object" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['status.title'].iloc[5:14]" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "id": "0068aa4b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['8.0'], dtype=object)" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['status.id'].iloc[11]" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "id": "1694eb9e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[['PUB']]], dtype=object)" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['status.title'].iloc[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "3cd70132", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['8.0'], dtype=object)" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_minors['ContractFolderStatus.TenderResult.ResultCode'].iloc[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "f1a6b51a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "zip file name entry\n", + "contratosMenoresPerfilesContratantes_2018.zip contratosMenoresPerfilesContratantes_20190225_140722_12.atom 499 [RES]\n", + " 498 [RES]\n", + " 497 [RES]\n", + " 496 [RES]\n", + " 495 [RES]\n", + "Name: ContractFolderStatus.ContractFolderStatusCode, dtype: object" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_minors['ContractFolderStatus.ContractFolderStatusCode'].iloc[0:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "ffede197", + "metadata": {}, + "outputs": [], + "source": [ + "valor = df['status.id'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "4e2fbd68", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([nan, 9., 1., 8., 3., 4., 2., 5.])" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "valor" + ] + }, + { + "cell_type": "code", + "execution_count": 723, + "id": "9a12c929", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'2024-07-01T13:00:00'" + ] + }, + "execution_count": 723, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['fechaPresentacion'].iloc[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 657, + "id": "e2416701", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "nan" + ] + }, + "execution_count": 657, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "valor" + ] + }, + { + "cell_type": "code", + "execution_count": 716, + "id": "93e9b423", + "metadata": {}, + "outputs": [], + "source": [ + "no_nulos = df_minors['ContractFolderStatus.ProcurementProject.RealizedLocation.Address.PostalZone']" + ] + }, + { + "cell_type": "code", + "execution_count": 719, + "id": "09c34b39", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "zip file name entry\n", + "contratosMenoresPerfilesContratantes_2018.zip contratosMenoresPerfilesContratantes_20190225_140722_12.atom 499 False\n", + " 498 False\n", + " 497 False\n", + " 496 False\n", + " 495 False\n", + " ... \n", + "contratosMenoresPerfilesContratantes_202401.zip contratosMenoresPerfilesContratantes.atom 4 False\n", + " 3 False\n", + " 2 False\n", + " 1 False\n", + " 0 False\n", + "Name: ContractFolderStatus.ProcurementProject.RealizedLocation.Address.PostalZone, Length: 2159058, dtype: bool" + ] + }, + "execution_count": 719, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 705, + "id": "ad6ba9da", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['92000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45233293.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['[30000000, 33192300]'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['32343100.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33192000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33192000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33192000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45212290.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['39111100.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['39264000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['35121000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71240000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33192120.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['79956000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33124110.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45259000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['79340000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['72400000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['37520000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['79340000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['37810000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['[34110000, 34115200]'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['[45100000, 45200000]'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['90400000.0'], dtype=object),\n", + " array(['33112100.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['79340000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71240000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71351000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33193120.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['92521100.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['15000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45246510.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['72710000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['30200000.0'], dtype=object),\n", + " array(['34991000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['30200000.0'], dtype=object),\n", + " array(['39220000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['48000000.0'], dtype=object),\n", + " array(['45232200.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45310000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['[39000000, 39150000]'], dtype=object),\n", + " array(['30237200.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['50700000.0'], dtype=object),\n", + " array(['48000000.0'], dtype=object),\n", + " array(['45450000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['22462000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['48612000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['42513200.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45261420.0'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['[60161000, 60112000]'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['22000000.0'], dtype=object),\n", + " array(['15000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['39000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['22110000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['22000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['31600000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['22000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45262600.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45300000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['50800000.0'], dtype=object),\n", + " array(['39100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['50800000.0'], dtype=object),\n", + " array(['33000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71621000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['[50323100, 50323000]'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['22461000.0'], dtype=object),\n", + " array(['80000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['72212220.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45454100.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['22461000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['79341000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['79952000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['72000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45453100.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['90920000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['39100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['42642200.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['34100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['39150000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71200000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45233300.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['60182000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['39100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['80000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['30192700.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['50000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['33183000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['30193100.0'], dtype=object),\n", + " array(['80000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['50000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45454100.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['85100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['79223000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45241600.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['32341000.0'], dtype=object),\n", + " array(['50700000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71221000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['39150000.0'], dtype=object),\n", + " array(['50246000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71351210.0'], dtype=object),\n", + " array(['92000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['39000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45233142.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45233160.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['18100000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['34000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['35800000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['92521000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['50100000.0'], dtype=object),\n", + " array(['79400000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71356200.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['71356200.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['35800000.0'], dtype=object),\n", + " array(['71356200.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['72000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['79340000.0'], dtype=object),\n", + " array(['38500000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['92110000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['72000000.0'], dtype=object),\n", + " array(['92311000.0'], dtype=object),\n", + " array(['80561000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['45000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['60000000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['80561000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['60161000.0'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " array(['nan'], dtype=object),\n", + " ...]" + ] + }, + "execution_count": 705, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_minors['ContractFolderStatus.ProcurementProject.RequiredCommodityClassification.ItemClassificationCode'].tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 604, + "id": "29cd9f8d", + "metadata": {}, + "outputs": [], + "source": [ + "df['cpv.id'] = df['cpv.id'].apply(float64_to_array)\n", + "df['status.id'] = df['status.id'].map(id_to_place_mapping).astype(np.float64)\n", + "df['status.title'] = df['status.title'].map(title_to_place_mapping)\n", + "df['status.id'] = df['status.id'].apply(float64_to_array)\n", + "df['status.title'] = df['status.title'].apply(convert_to_object_array)\n", + "df['fechaContrato'] = df['fechaContrato'].apply(convert_date_to_array)\n", + "df['numLicitadores'] = df['numLicitadores'].apply(float64_to_array)\n", + "df['ofertas.empresa.nif'] = df['ofertas.empresa.nif'].apply(convert_to_object_array)\n", + "df['ofertas.empresa.nombre'] = df['ofertas.empresa.nombre'].apply(convert_to_object_array)\n", + "df['ofertas.importeSinIVA'] = df['ofertas.importeSinIVA'].apply(float64_to_array)\n", + "df['procedimiento.id'] = df['procedimiento.id'].apply(convert_int64_to_float64)\n", + "\n", + "df['fechaPresentacion'] = df['fechaPresentacion'].apply(convert_to_timestamp)\n", + "df['lastUpdated'] = df['lastUpdated'].apply(convert_date_to_array)" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "a1692fd3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'50003'" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['organoContratante.postal_code'].iloc[8]" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "id": "1df76825", "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idtitleexpedientenumeroSEAcontratoMenortypeprocedimientofechaPresentacionentityduracionstatusfechaContratolastUpdatedpubDateobjetoimporteSinIVAimporteConIVAcpvservicioorganoContratantecanoncriteriosurlofertasnumLicitadoresderivadoAcuerdoMarcoderivadoSistemaDinamicosubastaElectronicacomplementarioregulacionArmonizadaivamodificadovalorEstimadofechaAdjudicacionclausulaProrrogafechaFormalizacionexpirationlotesduracionReal
06608SUMINISTRO Y MONTAJE DE ESTRUCTURAS DE PANELAD...488250-242.024003e+10True{'id': 3, 'title': 'Suministros', 'type': 'Sup...{'id': 10, 'nombre': 'Menor'}2024-05-23T13:00:00{'id': 1, 'title': 'Ayuntamiento de Zaragoza',...6.0{'id': 0, 'title': 'En Licitación'}2024-05-23T13:00:002024-05-13T12:12:402024-05-13T12:12:39Suministro y montaje de estructuras de panelad...11750.0014217.50[{'id': 39154100, 'titulo': 'Stands de exposic...{'id': 61608, 'dir3': 'LA0011321', 'title': 'S...{'id': 62131, 'dir3': 'LA0027254', 'title': 'C...False[{'idCriterio': 3649, 'description': 'null', '...https://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
16609SUMINISTRO E INSTALACION DE EQUIPOS DE JUEGO D...488235-242.024003e+10True{'id': 3, 'title': 'Suministros', 'type': 'Sup...{'id': 10, 'nombre': 'Menor'}2024-05-23T13:00:00{'id': 1, 'title': 'Ayuntamiento de Zaragoza',...6.0{'id': 0, 'title': 'En Licitación'}2024-05-23T13:00:002024-05-13T12:13:392024-05-13T12:13:39Suministro e instalacion de equipos de juego d...14950.0018089.50[{'id': 30213300, 'titulo': 'Ordenadores de me...{'id': 61608, 'dir3': 'LA0011321', 'title': 'S...{'id': 62131, 'dir3': 'LA0027254', 'title': 'C...False[{'idCriterio': 3650, 'description': 'null', '...https://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
26610ACCESO BASES DE DATOS Y SUSCRIPCION A PUBLICAC...488983-242.024003e+10True{'id': 2, 'title': 'Servicios', 'type': 'Servi...{'id': 10, 'nombre': 'Menor'}2024-05-23T13:00:00{'id': 1, 'title': 'Ayuntamiento de Zaragoza',...790.0{'id': 5, 'title': 'Adjudicación'}2024-05-23T13:00:002024-05-15T13:39:212024-05-15T13:39:20Obtencion de informacion mercantil y registral...27130.0032827.30[{'id': 22121000, 'titulo': 'Publicaciones téc...{'id': 61775, 'dir3': 'LA0011870', 'title': 'O...{'id': 62108, 'dir3': 'LA0027219', 'title': 'C...FalseNaNhttps://www.zaragoza.es/ciudad/gestionmunicipa...[{'id': 64116, 'fechaAdjudicacion': '2024-05-1...1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
36606DEMOLICION QUIOSCO DE MUSICA DEL PARQUE TORRE ...483239-242.024002e+10True{'id': 1, 'title': 'Obras', 'type': 'WorksCont...{'id': 10, 'nombre': 'Menor'}2024-05-20T13:00:00{'id': 1, 'title': 'Ayuntamiento de Zaragoza',...7.0{'id': 0, 'title': 'En Licitación'}2024-05-20T13:00:002024-05-10T09:07:282024-05-10T09:07:28Mediante la presente ficha tecnica se definen ...23295.7028187.80[{'id': 45111000, 'titulo': 'Trabajos de demol...{'id': 62165, 'dir3': 'LA0028809', 'title': 'S...{'id': 62129, 'dir3': 'LA0027252', 'title': 'C...False[{'idCriterio': 3647, 'description': '1. Preci...https://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
46607DEMOLICION CUBIERTA QUIOSCO PARQUE ALJAFERIA483173-242.024002e+10True{'id': 1, 'title': 'Obras', 'type': 'WorksCont...{'id': 10, 'nombre': 'Menor'}2024-05-20T13:00:00{'id': 1, 'title': 'Ayuntamiento de Zaragoza',...14.0{'id': 0, 'title': 'En Licitación'}2024-05-20T13:00:002024-05-10T09:09:052024-05-10T09:09:05Mediante la presente ficha tecnica se definen ...34829.4842143.67[{'id': 45111100, 'titulo': 'Trabajos de demol...{'id': 62165, 'dir3': 'LA0028809', 'title': 'S...{'id': 62129, 'dir3': 'LA0027252', 'title': 'C...False[{'idCriterio': 3648, 'description': 'Oferta e...https://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
........................................................................................................................
35901144INTEGRACIÓN DEL APLICATIVO SSCC CON LA PLATAFO...33865-14NaNTrue{'id': 2, 'title': 'Servicios', 'type': 'Servi...{'id': 10, 'nombre': 'Menor'}2014-04-02T13:00:00{'id': 1, 'title': 'Ayuntamiento de Zaragoza',...0.0{'id': 5, 'title': 'Adjudicación'}2014-03-21T00:00:002023-08-02T12:41:072014-03-21T11:44:54NaNNaNNaNNaNNaNNaNFalseNaNhttps://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaN0.0NaNNaNNaNNaNNaNNaNNaN
35911141GRABACIÓN DEL RECORRIDO DEL BUS TURÍSTICOTURMENOR07-14NaNTrue{'id': 2, 'title': 'Servicios', 'type': 'Servi...{'id': 10, 'nombre': 'Menor'}2014-03-24T13:00:00{'id': 6, 'title': 'Zaragoza Turismo', 'lastUp...0.0{'id': 5, 'title': 'Adjudicación'}2014-03-18T00:00:002023-08-02T12:41:062014-03-18T08:06:20NaNNaNNaNNaN{'id': 25030, 'dir3': 'LA0000059', 'title': 'P...{'id': 25030, 'dir3': 'LA0000059', 'title': 'P...FalseNaNhttps://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaN0.0NaNNaNNaNNaNNaNNaNNaN
35921140MODIFICACIÓN Y MAQUETACIÓN DE LAS ORDENANZAS F...33003-14NaNTrue{'id': 2, 'title': 'Servicios', 'type': 'Servi...{'id': 10, 'nombre': 'Menor'}2014-03-27T12:00:00{'id': 1, 'title': 'Ayuntamiento de Zaragoza',...0.0{'id': 5, 'title': 'Adjudicación'}2014-03-17T00:00:002023-08-02T12:41:062014-03-17T11:28:01NaNNaNNaNNaNNaNNaNFalseNaNhttps://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaN0.0NaNNaNNaNNaNNaNNaNNaN
35931138ESTUDIO DE MERCADO SOBRE EL PERFIL DEL VISITAN...TURMENOR06-14NaNTrue{'id': 2, 'title': 'Servicios', 'type': 'Servi...{'id': 10, 'nombre': 'Menor'}2014-03-15T13:00:00{'id': 6, 'title': 'Zaragoza Turismo', 'lastUp...0.0{'id': 5, 'title': 'Adjudicación'}2014-03-10T00:00:002023-08-02T12:41:062014-03-10T10:55:13NaNNaNNaNNaN{'id': 25030, 'dir3': 'LA0000059', 'title': 'P...{'id': 25030, 'dir3': 'LA0000059', 'title': 'P...FalseNaNhttps://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaN0.0NaNNaNNaNNaNNaNNaNNaN
35941137COMERCIALIZACIÓN Y MANTENIMIENTO TÉCNICO TARJE...TURMENOR05-14NaNTrue{'id': 2, 'title': 'Servicios', 'type': 'Servi...{'id': 10, 'nombre': 'Menor'}2014-03-17T12:00:00{'id': 6, 'title': 'Zaragoza Turismo', 'lastUp...0.0{'id': 5, 'title': 'Adjudicación'}2014-03-06T00:00:002023-08-02T12:41:062014-03-06T11:26:13NaNNaNNaNNaN{'id': 25030, 'dir3': 'LA0000059', 'title': 'P...{'id': 25030, 'dir3': 'LA0000059', 'title': 'P...FalseNaNhttps://www.zaragoza.es/ciudad/gestionmunicipa...NaNNaNNaNNaNNaNNaNNaNNaN0.0NaNNaNNaNNaNNaNNaNNaN
\n", - "

3595 rows × 39 columns

\n", - "
" - ], "text/plain": [ - " id title expediente \\\n", - "0 6608 SUMINISTRO Y MONTAJE DE ESTRUCTURAS DE PANELAD... 488250-24 \n", - "1 6609 SUMINISTRO E INSTALACION DE EQUIPOS DE JUEGO D... 488235-24 \n", - "2 6610 ACCESO BASES DE DATOS Y SUSCRIPCION A PUBLICAC... 488983-24 \n", - "3 6606 DEMOLICION QUIOSCO DE MUSICA DEL PARQUE TORRE ... 483239-24 \n", - "4 6607 DEMOLICION CUBIERTA QUIOSCO PARQUE ALJAFERIA 483173-24 \n", - "... ... ... ... \n", - "3590 1144 INTEGRACIÓN DEL APLICATIVO SSCC CON LA PLATAFO... 33865-14 \n", - "3591 1141 GRABACIÓN DEL RECORRIDO DEL BUS TURÍSTICO TURMENOR07-14 \n", - "3592 1140 MODIFICACIÓN Y MAQUETACIÓN DE LAS ORDENANZAS F... 33003-14 \n", - "3593 1138 ESTUDIO DE MERCADO SOBRE EL PERFIL DEL VISITAN... TURMENOR06-14 \n", - "3594 1137 COMERCIALIZACIÓN Y MANTENIMIENTO TÉCNICO TARJE... TURMENOR05-14 \n", - "\n", - " numeroSEA contratoMenor \\\n", - "0 2.024003e+10 True \n", - "1 2.024003e+10 True \n", - "2 2.024003e+10 True \n", - "3 2.024002e+10 True \n", - "4 2.024002e+10 True \n", - "... ... ... \n", - "3590 NaN True \n", - "3591 NaN True \n", - "3592 NaN True \n", - "3593 NaN True \n", - "3594 NaN True \n", - "\n", - " type \\\n", - "0 {'id': 3, 'title': 'Suministros', 'type': 'Sup... \n", - "1 {'id': 3, 'title': 'Suministros', 'type': 'Sup... \n", - "2 {'id': 2, 'title': 'Servicios', 'type': 'Servi... \n", - "3 {'id': 1, 'title': 'Obras', 'type': 'WorksCont... \n", - "4 {'id': 1, 'title': 'Obras', 'type': 'WorksCont... \n", - "... ... \n", - "3590 {'id': 2, 'title': 'Servicios', 'type': 'Servi... \n", - "3591 {'id': 2, 'title': 'Servicios', 'type': 'Servi... \n", - "3592 {'id': 2, 'title': 'Servicios', 'type': 'Servi... \n", - "3593 {'id': 2, 'title': 'Servicios', 'type': 'Servi... \n", - "3594 {'id': 2, 'title': 'Servicios', 'type': 'Servi... \n", - "\n", - " procedimiento fechaPresentacion \\\n", - "0 {'id': 10, 'nombre': 'Menor'} 2024-05-23T13:00:00 \n", - "1 {'id': 10, 'nombre': 'Menor'} 2024-05-23T13:00:00 \n", - "2 {'id': 10, 'nombre': 'Menor'} 2024-05-23T13:00:00 \n", - "3 {'id': 10, 'nombre': 'Menor'} 2024-05-20T13:00:00 \n", - "4 {'id': 10, 'nombre': 'Menor'} 2024-05-20T13:00:00 \n", - "... ... ... \n", - "3590 {'id': 10, 'nombre': 'Menor'} 2014-04-02T13:00:00 \n", - "3591 {'id': 10, 'nombre': 'Menor'} 2014-03-24T13:00:00 \n", - "3592 {'id': 10, 'nombre': 'Menor'} 2014-03-27T12:00:00 \n", - "3593 {'id': 10, 'nombre': 'Menor'} 2014-03-15T13:00:00 \n", - "3594 {'id': 10, 'nombre': 'Menor'} 2014-03-17T12:00:00 \n", - "\n", - " entity duracion \\\n", - "0 {'id': 1, 'title': 'Ayuntamiento de Zaragoza',... 6.0 \n", - "1 {'id': 1, 'title': 'Ayuntamiento de Zaragoza',... 6.0 \n", - "2 {'id': 1, 'title': 'Ayuntamiento de Zaragoza',... 790.0 \n", - "3 {'id': 1, 'title': 'Ayuntamiento de Zaragoza',... 7.0 \n", - "4 {'id': 1, 'title': 'Ayuntamiento de Zaragoza',... 14.0 \n", - "... ... ... \n", - "3590 {'id': 1, 'title': 'Ayuntamiento de Zaragoza',... 0.0 \n", - "3591 {'id': 6, 'title': 'Zaragoza Turismo', 'lastUp... 0.0 \n", - "3592 {'id': 1, 'title': 'Ayuntamiento de Zaragoza',... 0.0 \n", - "3593 {'id': 6, 'title': 'Zaragoza Turismo', 'lastUp... 0.0 \n", - "3594 {'id': 6, 'title': 'Zaragoza Turismo', 'lastUp... 0.0 \n", - "\n", - " status fechaContrato \\\n", - "0 {'id': 0, 'title': 'En Licitación'} 2024-05-23T13:00:00 \n", - "1 {'id': 0, 'title': 'En Licitación'} 2024-05-23T13:00:00 \n", - "2 {'id': 5, 'title': 'Adjudicación'} 2024-05-23T13:00:00 \n", - "3 {'id': 0, 'title': 'En Licitación'} 2024-05-20T13:00:00 \n", - "4 {'id': 0, 'title': 'En Licitación'} 2024-05-20T13:00:00 \n", - "... ... ... \n", - "3590 {'id': 5, 'title': 'Adjudicación'} 2014-03-21T00:00:00 \n", - "3591 {'id': 5, 'title': 'Adjudicación'} 2014-03-18T00:00:00 \n", - "3592 {'id': 5, 'title': 'Adjudicación'} 2014-03-17T00:00:00 \n", - "3593 {'id': 5, 'title': 'Adjudicación'} 2014-03-10T00:00:00 \n", - "3594 {'id': 5, 'title': 'Adjudicación'} 2014-03-06T00:00:00 \n", - "\n", - " lastUpdated pubDate \\\n", - "0 2024-05-13T12:12:40 2024-05-13T12:12:39 \n", - "1 2024-05-13T12:13:39 2024-05-13T12:13:39 \n", - "2 2024-05-15T13:39:21 2024-05-15T13:39:20 \n", - "3 2024-05-10T09:07:28 2024-05-10T09:07:28 \n", - "4 2024-05-10T09:09:05 2024-05-10T09:09:05 \n", - "... ... ... \n", - "3590 2023-08-02T12:41:07 2014-03-21T11:44:54 \n", - "3591 2023-08-02T12:41:06 2014-03-18T08:06:20 \n", - "3592 2023-08-02T12:41:06 2014-03-17T11:28:01 \n", - "3593 2023-08-02T12:41:06 2014-03-10T10:55:13 \n", - "3594 2023-08-02T12:41:06 2014-03-06T11:26:13 \n", - "\n", - " objeto importeSinIVA \\\n", - "0 Suministro y montaje de estructuras de panelad... 11750.00 \n", - "1 Suministro e instalacion de equipos de juego d... 14950.00 \n", - "2 Obtencion de informacion mercantil y registral... 27130.00 \n", - "3 Mediante la presente ficha tecnica se definen ... 23295.70 \n", - "4 Mediante la presente ficha tecnica se definen ... 34829.48 \n", - "... ... ... \n", - "3590 NaN NaN \n", - "3591 NaN NaN \n", - "3592 NaN NaN \n", - "3593 NaN NaN \n", - "3594 NaN NaN \n", - "\n", - " importeConIVA cpv \\\n", - "0 14217.50 [{'id': 39154100, 'titulo': 'Stands de exposic... \n", - "1 18089.50 [{'id': 30213300, 'titulo': 'Ordenadores de me... \n", - "2 32827.30 [{'id': 22121000, 'titulo': 'Publicaciones téc... \n", - "3 28187.80 [{'id': 45111000, 'titulo': 'Trabajos de demol... \n", - "4 42143.67 [{'id': 45111100, 'titulo': 'Trabajos de demol... \n", - "... ... ... \n", - "3590 NaN NaN \n", - "3591 NaN NaN \n", - "3592 NaN NaN \n", - "3593 NaN NaN \n", - "3594 NaN NaN \n", - "\n", - " servicio \\\n", - "0 {'id': 61608, 'dir3': 'LA0011321', 'title': 'S... \n", - "1 {'id': 61608, 'dir3': 'LA0011321', 'title': 'S... \n", - "2 {'id': 61775, 'dir3': 'LA0011870', 'title': 'O... \n", - "3 {'id': 62165, 'dir3': 'LA0028809', 'title': 'S... \n", - "4 {'id': 62165, 'dir3': 'LA0028809', 'title': 'S... \n", - "... ... \n", - "3590 NaN \n", - "3591 {'id': 25030, 'dir3': 'LA0000059', 'title': 'P... \n", - "3592 NaN \n", - "3593 {'id': 25030, 'dir3': 'LA0000059', 'title': 'P... \n", - "3594 {'id': 25030, 'dir3': 'LA0000059', 'title': 'P... \n", - "\n", - " organoContratante canon \\\n", - "0 {'id': 62131, 'dir3': 'LA0027254', 'title': 'C... False \n", - "1 {'id': 62131, 'dir3': 'LA0027254', 'title': 'C... False \n", - "2 {'id': 62108, 'dir3': 'LA0027219', 'title': 'C... False \n", - "3 {'id': 62129, 'dir3': 'LA0027252', 'title': 'C... False \n", - "4 {'id': 62129, 'dir3': 'LA0027252', 'title': 'C... False \n", - "... ... ... \n", - "3590 NaN False \n", - "3591 {'id': 25030, 'dir3': 'LA0000059', 'title': 'P... False \n", - "3592 NaN False \n", - "3593 {'id': 25030, 'dir3': 'LA0000059', 'title': 'P... False \n", - "3594 {'id': 25030, 'dir3': 'LA0000059', 'title': 'P... False \n", - "\n", - " criterios \\\n", - "0 [{'idCriterio': 3649, 'description': 'null', '... \n", - "1 [{'idCriterio': 3650, 'description': 'null', '... \n", - "2 NaN \n", - "3 [{'idCriterio': 3647, 'description': '1. Preci... \n", - "4 [{'idCriterio': 3648, 'description': 'Oferta e... \n", - "... ... \n", - "3590 NaN \n", - "3591 NaN \n", - "3592 NaN \n", - "3593 NaN \n", - "3594 NaN \n", - "\n", - " url \\\n", - "0 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "1 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "2 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "3 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "4 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "... ... \n", - "3590 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "3591 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "3592 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "3593 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "3594 https://www.zaragoza.es/ciudad/gestionmunicipa... \n", - "\n", - " ofertas numLicitadores \\\n", - "0 NaN NaN \n", - "1 NaN NaN \n", - "2 [{'id': 64116, 'fechaAdjudicacion': '2024-05-1... 1.0 \n", - "3 NaN NaN \n", - "4 NaN NaN \n", - "... ... ... \n", - "3590 NaN NaN \n", - "3591 NaN NaN \n", - "3592 NaN NaN \n", - "3593 NaN NaN \n", - "3594 NaN NaN \n", - "\n", - " derivadoAcuerdoMarco derivadoSistemaDinamico subastaElectronica \\\n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", - "... ... ... ... \n", - "3590 NaN NaN NaN \n", - "3591 NaN NaN NaN \n", - "3592 NaN NaN NaN \n", - "3593 NaN NaN NaN \n", - "3594 NaN NaN NaN \n", - "\n", - " complementario regulacionArmonizada iva modificado valorEstimado \\\n", - "0 NaN NaN NaN NaN NaN \n", - "1 NaN NaN NaN NaN NaN \n", - "2 NaN NaN NaN NaN NaN \n", - "3 NaN NaN NaN NaN NaN \n", - "4 NaN NaN NaN NaN NaN \n", - "... ... ... ... ... ... \n", - "3590 NaN NaN NaN 0.0 NaN \n", - "3591 NaN NaN NaN 0.0 NaN \n", - "3592 NaN NaN NaN 0.0 NaN \n", - "3593 NaN NaN NaN 0.0 NaN \n", - "3594 NaN NaN NaN 0.0 NaN \n", - "\n", - " fechaAdjudicacion clausulaProrroga fechaFormalizacion expiration lotes \\\n", - "0 NaN NaN NaN NaN NaN \n", - "1 NaN NaN NaN NaN NaN \n", - "2 NaN NaN NaN NaN NaN \n", - "3 NaN NaN NaN NaN NaN \n", - "4 NaN NaN NaN NaN NaN \n", - "... ... ... ... ... ... \n", - "3590 NaN NaN NaN NaN NaN \n", - "3591 NaN NaN NaN NaN NaN \n", - "3592 NaN NaN NaN NaN NaN \n", - "3593 NaN NaN NaN NaN NaN \n", - "3594 NaN NaN NaN NaN NaN \n", - "\n", - " duracionReal \n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "3590 NaN \n", - "3591 NaN \n", - "3592 NaN \n", - "3593 NaN \n", - "3594 NaN \n", - "\n", - "[3595 rows x 39 columns]" + "array(['DOC_CAN_ADJ'], dtype=object)" ] }, - "execution_count": 7, + "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df" + "df_minors['ContractFolderStatus.ValidNoticeInfo.NoticeTypeCode'].iloc[10053]" ] }, { "cell_type": "code", - "execution_count": 8, - "id": "70bf3de0", + "execution_count": 589, + "id": "95592775", "metadata": {}, "outputs": [], "source": [ - "def extract_field(data, key):\n", - " \"\"\" \n", - " Safely extracts a value from a dictionary using the provided key.\n", - " This function handles exceptions to ensure the program does not crash if the key is not found or if the input is not a dictionary.\n", - " \"\"\"\n", - " try:\n", - " return data[key]\n", - " except (TypeError, KeyError):\n", - " return None\n", - "\n", - "def extract_from_list_of_dicts(lst, key):\n", - " \"\"\"\n", - " Safely extracts a value from the first dictionary in a list using the specified key.\n", - " This function checks if the input is a list and if it contains dictionaries before attempting to extract the value to avoid errors.\n", - " \"\"\"\n", - " if lst and isinstance(lst, list):\n", - " return lst[0].get(key, None)\n", - " return None\n", - "\n", - "def extract_nested_field(data, path):\n", - " \"\"\"\"\n", - " Attempts to retrieve a value from a nested structure of dictionaries/lists using a list of keys/indices to navigate the path.\n", - " This function iteratively accesses deeper levels of the data structure, handling exceptions if the path is incorrect or broken.\n", - " \"\"\"\n", - " for key in path:\n", - " try:\n", - " data = data[key]\n", - " except (TypeError, KeyError, IndexError):\n", - " return None\n", - " return data\n", - "\n", - "def extract_nested_field_from_list(lst, path):\n", - " \"\"\"\n", - " Extracts a nested field from a list of dictionaries, following a specified path of keys.\n", - " This function iterates through each dictionary in the list, trying to navigate to the nested field according to the path, while handling exceptions if the path does not exist.\n", - " \"\"\"\n", - " if lst and isinstance(lst, list):\n", - " for item in lst:\n", - " data = item\n", - " try:\n", - " for key in path:\n", - " data = data[key]\n", - " return data\n", - " except (TypeError, KeyError, IndexError):\n", - " continue\n", - " return None\n", - "\n", - "# Extracting the fields of column 'type'\n", - "df['type.id'] = df['type'].apply(lambda x: extract_field(x, 'id'))\n", - "df['type.title'] = df['type'].apply(lambda x: extract_field(x, 'title'))\n", - "df['type.type'] = df['type'].apply(lambda x: extract_field(x, 'type'))\n", - "\n", - "# Extracting the fields of column 'procedimiento'\n", - "df['procedimiento.id'] = df['procedimiento'].apply(lambda x: extract_field(x, 'id'))\n", - "df['procedimiento.nombre'] = df['procedimiento'].apply(lambda x: extract_field(x, 'nombre'))\n", - "\n", - "# Extracting the fields of column 'entity'\n", - "df['entity.id'] = df['entity'].apply(lambda x: extract_field(x, 'id'))\n", - "df['entity.title'] = df['entity'].apply(lambda x: extract_field(x, 'title'))\n", - "df['entity.lastUpdated'] = df['entity'].apply(lambda x: extract_field(x, 'lastUpdated'))\n", - "df['entity.schema'] = df['entity'].apply(lambda x: extract_field(x, 'schema'))\n", - "df['entity.idSchema'] = df['entity'].apply(lambda x: extract_field(x, 'idSchema'))\n", - "\n", - "# Extracting the fields of column 'status'\n", - "df['status.id'] = df['status'].apply(lambda x: extract_field(x, 'id'))\n", - "df['status.title'] = df['status'].apply(lambda x: extract_field(x, 'title'))\n", - "\n", - "# Extracting the fields of column 'cpv'\n", - "df['cpv.id'] = df['cpv'].apply(lambda x: extract_from_list_of_dicts(x, 'id'))\n", - "df['cpv.titulo'] = df['cpv'].apply(lambda x: extract_from_list_of_dicts(x, 'titulo'))\n", - "\n", - "# Extracting the fields of column 'servicio'\n", - "df['servicio.id'] = df['servicio'].apply(lambda x: extract_field(x, 'id'))\n", - "df['servicio.dir3'] = df['servicio'].apply(lambda x: extract_field(x, 'dir3'))\n", - "df['servicio.title'] = df['servicio'].apply(lambda x: extract_field(x, 'title'))\n", - "df['servicio.phone'] = df['servicio'].apply(lambda x: extract_field(x, 'phone'))\n", - "df['servicio.postal_code'] = df['servicio'].apply(lambda x: extract_field(x, 'postal_code'))\n", - "df['servicio.nivelAdministracion'] = df['servicio'].apply(lambda x: extract_field(x, 'nivelAdministracion'))\n", - "df['servicio.tipoEntidadPublica'] = df['servicio'].apply(lambda x: extract_field(x, 'tipoEntidadPublica'))\n", - "df['servicio.nivelJerarquico'] = df['servicio'].apply(lambda x: extract_field(x, 'nivelJerarquico'))\n", - "df['servicio.unidadSuperior'] = df['servicio'].apply(lambda x: extract_field(x, 'unidadSuperior'))\n", - "df['servicio.unidadRaiz'] = df['servicio'].apply(lambda x: extract_field(x, 'unidadRaiz'))\n", - "df['servicio.status'] = df['servicio'].apply(lambda x: extract_field(x, 'status'))\n", - "df['servicio.headOf'] = df['servicio'].apply(lambda x: extract_field(x, 'headOf'))\n", - "df['servicio.creationDate'] = df['servicio'].apply(lambda x: extract_field(x, 'creationDate'))\n", - " \n", - "# Extracting the fields of column 'organoContratante'\n", - "df['organoContratante.id'] = df['organoContratante'].apply(lambda x: extract_field(x, 'id'))\n", - "df['organoContratante.dir3'] = df['organoContratante'].apply(lambda x: extract_field(x, 'dir3'))\n", - "df['organoContratante.title'] = df['organoContratante'].apply(lambda x: extract_field(x, 'title'))\n", - "df['organoContratante.phone'] = df['organoContratante'].apply(lambda x: extract_field(x, 'phone'))\n", - "df['organoContratante.postal_code'] = df['organoContratante'].apply(lambda x: extract_field(x, 'postal_code'))\n", - "df['organoContratante.nivelAdministracion'] = df['organoContratante'].apply(lambda x: extract_field(x, 'nivelAdministracion'))\n", - "df['organoContratante.tipoEntidadPublica'] = df['organoContratante'].apply(lambda x: extract_field(x, 'tipoEntidadPublica'))\n", - "df['organoContratante.nivelJerarquico'] = df['organoContratante'].apply(lambda x: extract_field(x, 'nivelJerarquico'))\n", - "df['organoContratante.unidadSuperior'] = df['organoContratante'].apply(lambda x: extract_field(x, 'unidadSuperior'))\n", - "df['organoContratante.unidadRaiz'] = df['organoContratante'].apply(lambda x: extract_field(x, 'unidadRaiz'))\n", - "df['organoContratante.status'] = df['organoContratante'].apply(lambda x: extract_field(x, 'status'))\n", - "df['organoContratante.headOf'] = df['organoContratante'].apply(lambda x: extract_field(x, 'headOf'))\n", - "df['organoContratante.creationDate'] = df['organoContratante'].apply(lambda x: extract_field(x, 'creationDate'))\n", - "\n", - "fields = {\n", - " 'address.id': ['address', 'id'],\n", - " 'address.address': ['address', 'address'],\n", - " 'address.postal_code': ['address', 'postal_code'],\n", - " 'address.locality': ['address', 'locality'],\n", - " 'address.countryName': ['address', 'countryName'],\n", - " 'address.geometry.type': ['address', 'geometry', 'type'],\n", - " 'address.geometry.coordinates': ['address', 'geometry', 'coordinates'],\n", - "}\n", - "\n", - "# Extracting the fields nested at 'servicio.address' and 'organoContratante.address'\n", - "for field, path in fields.items():\n", - " df[f'servicio.{field}'] = df['servicio'].apply(lambda x: extract_nested_field(x, path))\n", - " df[f'organoContratante.{field}'] = df['organoContratante'].apply(lambda x: extract_nested_field(x, path))\n", - "\n", - "# Extracting the fields of 'criterios' field\n", - "df['criterio.id'] = df['criterios'].apply(lambda x: extract_from_list_of_dicts(x, 'idCriterio'))\n", - "df['criterio.description'] = df['criterios'].apply(lambda x: extract_from_list_of_dicts(x, 'description'))\n", - "df['criterio.title'] = df['criterios'].apply(lambda x: extract_from_list_of_dicts(x, 'title'))\n", - "df['criterio.peso'] = df['criterios'].apply(lambda x: extract_from_list_of_dicts(x, 'peso'))\n", - "# Extracting the fields nested in 'criterios.tipo' -> 'id' and 'title'\n", - "df['criterio.tipo.id'] = df['criterios'].apply(lambda x: extract_nested_field_from_list(x, ['tipo', 'id']))\n", - "df['criterio.tipo.title'] = df['criterios'].apply(lambda x: extract_nested_field_from_list(x, ['tipo', 'title']))\n", - "\n", - "# Extracting the fields of 'ofertas' field\n", - "df['ofertas.id'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'id'))\n", - "df['ofertas.fechaAdjudicacion'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'fechaAdjudicacion'))\n", - "df['ofertas.fechaFormalizacion'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'fechaFormalizacion'))\n", - "df['ofertas.importeSinIVA'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'importeSinIVA'))\n", - "df['ofertas.canon'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'canon'))\n", - "df['ofertas.autonomo'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'autonomo'))\n", - "df['ofertas.ganador'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'ganador'))\n", - "df['ofertas.importeConIVA'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'importeConIVA'))\n", - "df['ofertas.iva'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'iva'))\n", - "df['ofertas.precioUnitario'] = df['ofertas'].apply(lambda x: extract_from_list_of_dicts(x, 'precioUnitario'))\n", + "df_filtered = df_minors['ContractFolderStatus.ProcurementProject.RealizedLocation.Address.PostalZone'].notna()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 651, + "id": "af7d5318", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\"['RES']\" \"['ADJ']\" \"['RES' 'RES']\" \"['RES' 'RES' 'RES']\" \"['ADJ' 'ADJ']\"\n", + " \"['RES' 'RES' 'RES' 'RES' 'RES']\" \"['RES' 'RES' 'RES' 'RES']\"\n", + " \"['RES' 'RES' 'ADJ' 'RES']\"\n", + " \"['RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES']\"\n", + " \"['ADJ' 'RES' 'RES']\" \"['RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES']\"\n", + " \"['ADJ' 'RES']\" \"['RES' 'ADJ']\" \"['RES' 'RES' 'ADJ']\"\n", + " \"['RES' 'RES' 'RES' 'RES' 'RES' 'RES']\" \"['ADJ' 'ADJ' 'RES']\"\n", + " \"['RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES']\"\n", + " \"['RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES']\"\n", + " \"['RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES']\"\n", + " \"['RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES' 'RES']\"\n", + " \"['ADJ' 'ADJ' 'ADJ']\" \"['ANUL' 'RES']\" \"['RES' 'ADJ' 'RES']\"\n", + " \"['ADJ' 'RES' 'RES' 'RES']\" \"['ADJ' 'RES' 'ADJ' 'RES' 'RES']\"]\n" + ] + } + ], + "source": [ + "df_minors['ContractFolderStatus.ContractFolderStatusCode'] = df_minors['ContractFolderStatus.ContractFolderStatusCode'].apply(lambda x: str(x))\n", "\n", - "# Extracting nested fields in 'ofertas.empresa' REVISAR PORQUE EN OCASIONES TIENEN MÁS DE UNA ENTRADA\n", - "df['ofertas.empresa.idEmpresa'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'idEmpresa']))\n", - "df['ofertas.empresa.nombre'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'nombre']))\n", - "df['ofertas.empresa.nif'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'nif']))\n", - "df['ofertas.empresa.openCorporateUrl'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'openCorporateUrl']))\n", - "df['ofertas.empresa.esUte'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'esUte']))\n", - "df['ofertas.empresa.autonomo'] = df['ofertas'].apply(lambda x: extract_nested_field_from_list(x, ['empresa', 'autonomo']))\n", + "# Ahora extraer los valores únicos\n", + "valores_unicos = df_minors['ContractFolderStatus.ContractFolderStatusCode'].unique()\n", "\n", - "# Remove original cols where data where nested\n", - "df.drop(['type','ofertas','procedimiento','entity','status','cpv','servicio','criterios','organoContratante'], axis=1, inplace=True)" + "# Mostrar los valores únicos\n", + "print(valores_unicos)" ] }, { "cell_type": "code", - "execution_count": 9, - "id": "8f3b0166", + "execution_count": 592, + "id": "c1b18e42", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "106" + "numpy.bool_" ] }, - "execution_count": 9, + "execution_count": 592, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "len(df.columns)" + "type(df_filtered.iloc[0])" ] }, { "cell_type": "code", - "execution_count": 20, - "id": "da27cb4d", + "execution_count": 596, + "id": "cff3675b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Timestamp('2017-08-14 14:00:00+0000', tz='UTC')" + ] + }, + "execution_count": 596, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_minors['ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod'].iloc[18]" + ] + }, + { + "cell_type": "code", + "execution_count": 593, + "id": "939ef45a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'2024-05-27T13:00:00'" + ] + }, + "execution_count": 593, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['fechaPresentacion'].iloc[39]" + ] + }, + { + "cell_type": "code", + "execution_count": 594, + "id": "8e0835a5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "str" + ] + }, + "execution_count": 594, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(df['fechaPresentacion'].iloc[39])" + ] + }, + { + "cell_type": "code", + "execution_count": 519, + "id": "a848c5b2", "metadata": {}, "outputs": [], "source": [ - "new = df[df['expediente'] == 'VIVMENOR1-18']\n" + "df_filtrado = df[df['id']== 6573]" ] }, { "cell_type": "code", - "execution_count": 21, - "id": "fd5179c1", + "execution_count": 520, + "id": "33a6609c", "metadata": {}, "outputs": [ { @@ -1045,14 +2037,14 @@ " importeConIVA\n", " canon\n", " url\n", - " numLicitadores\n", " derivadoAcuerdoMarco\n", " derivadoSistemaDinamico\n", " subastaElectronica\n", " complementario\n", " regulacionArmonizada\n", - " iva\n", " modificado\n", + " numLicitadores\n", + " iva\n", " valorEstimado\n", " fechaAdjudicacion\n", " clausulaProrroga\n", @@ -1140,30 +2132,30 @@ " \n", " \n", " \n", - " 2270\n", - " 3050\n", - " SERVICIO DE ELABORACIÓN DE UN PROGRAMA DE DINA...\n", - " VIVMENOR1-18\n", - " NaN\n", + " 70\n", + " 6573\n", + " ESTUDIO GEOTECNICO Y ANALISIS ESTADO ACTUAL ES...\n", + " 483936-24\n", + " 2.024002e+10\n", " True\n", - " 2018-03-09T14:00:00\n", - " 12.0\n", - " 2018-03-23T00:00:00\n", - " 2023-08-02T12:41:06\n", - " 2018-02-21T14:02:33\n", - " NaN\n", - " 15000.0\n", + " 2024-04-18T13:00:00\n", + " 21.0\n", + " [2024-04-18]\n", + " 2024-05-09T12:20:10\n", + " 2024-04-11T14:02:18\n", + " A.T para estudio geotecnico s/ CTE y analisis ...\n", + " 14999.99\n", " 18150.0\n", " False\n", " https://www.zaragoza.es/ciudad/gestionmunicipa...\n", - " 3.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 0.0\n", + " [2.0]\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -1176,75 +2168,75 @@ " ServicesContract\n", " 10\n", " Menor\n", - " 3\n", - " Zaragoza Vivienda\n", - " 2020-10-21T12:39:19\n", - " CIF\n", - " B50005701\n", - " 5\n", + " 1\n", + " Ayuntamiento de Zaragoza\n", + " 2020-10-21T12:43:00\n", + " DIR3\n", + " L01502973\n", + " [[[[[5]]]]]\n", " Adjudicación\n", - " NaN\n", - " None\n", - " 61631.0\n", - " LA0013573\n", - " SOCIEDAD MUNICIPAL ZARAGOZA VIVIENDA, S.L.U.\n", - " 976 405 888\n", - " 50003\n", + " 71332000.0\n", + " Servicios de ingeniería geotécnica\n", + " 62125.0\n", + " LA0027256\n", + " COORDINACION GENERAL DEL AREA DE URBANISMO, IN...\n", + " 976 721075, 4996\n", + " 50071\n", " http://datos.gob.es/kos/sector-publico/org/Niv...\n", " http://datos.gob.es/kos/sector-publico/org/Tip...\n", - " 3.0\n", + " 4.0\n", " http://www.zaragoza.es/sede/servicio/organigra...\n", " http://www.zaragoza.es/sede/servicio/organigra...\n", " http://datos.gob.es/kos/sector-publico/org/Est...\n", - " None\n", - " 1953-01-21T00:00:00\n", - " 61631.0\n", - " LA0013573\n", - " SOCIEDAD MUNICIPAL ZARAGOZA VIVIENDA, S.L.U.\n", - " 976 405 888\n", - " 50003\n", + " LOPEZ BLAZQUEZ,JULIO\n", + " 2023-06-21T00:00:00\n", + " 62125.0\n", + " LA0027256\n", + " COORDINACION GENERAL DEL AREA DE URBANISMO, IN...\n", + " 976 721075, 4996\n", + " 50071\n", " http://datos.gob.es/kos/sector-publico/org/Niv...\n", " http://datos.gob.es/kos/sector-publico/org/Tip...\n", - " 3.0\n", + " 4.0\n", " http://www.zaragoza.es/sede/servicio/organigra...\n", " http://www.zaragoza.es/sede/servicio/organigra...\n", " http://datos.gob.es/kos/sector-publico/org/Est...\n", - " None\n", - " 1953-01-21T00:00:00\n", - " 23953.0\n", - " 23953.0\n", - " SAN PABLO,61\n", - " SAN PABLO,61\n", - " 50003\n", - " 50003\n", + " LOPEZ BLAZQUEZ,JULIO\n", + " 2023-06-21T00:00:00\n", + " 14628.0\n", + " 14628.0\n", + " HISPANIDAD, VIA,20\n", + " HISPANIDAD, VIA,20\n", + " 50071\n", + " 50071\n", " Zaragoza\n", " Zaragoza\n", " España\n", " España\n", " Point\n", " Point\n", - " [676059.23, 4613945.99]\n", - " [676059.23, 4613945.99]\n", - " NaN\n", - " None\n", - " None\n", - " NaN\n", - " NaN\n", + " [674094.66, 4611606.41]\n", + " [674094.66, 4611606.41]\n", + " 3607.0\n", + " Criterios que permitan valorar la calidad prop...\n", + " Oferta economica\n", + " 100.0\n", + " 1.0\n", + " Objetivo\n", + " 63940.0\n", + " 2024-05-09T11:22:29\n", " None\n", - " 35033.0\n", - " 2018-03-23T00:00:00\n", - " 2018-03-23T00:00:00\n", - " 12000.0\n", - " False\n", + " 13943.0\n", " False\n", + " None\n", " True\n", - " 14520.0\n", + " 16871.03\n", " NaN\n", - " False\n", - " 920.0\n", - " EL GANCHILLO SOCIAL\n", - " G99497406\n", - " https://opencorporates.com/companies/es/50067099\n", + " None\n", + " 335.0\n", + " EXTREMERA LED ASOCIADOS SLU\n", + " B99450777\n", + " None\n", " False\n", " N\n", " \n", @@ -1253,784 +2245,1370 @@ "" ], "text/plain": [ - " id title expediente \\\n", - "2270 3050 SERVICIO DE ELABORACIÓN DE UN PROGRAMA DE DINA... VIVMENOR1-18 \n", - "\n", - " numeroSEA contratoMenor fechaPresentacion duracion \\\n", - "2270 NaN True 2018-03-09T14:00:00 12.0 \n", - "\n", - " fechaContrato lastUpdated pubDate objeto \\\n", - "2270 2018-03-23T00:00:00 2023-08-02T12:41:06 2018-02-21T14:02:33 NaN \n", - "\n", - " importeSinIVA importeConIVA canon \\\n", - "2270 15000.0 18150.0 False \n", - "\n", - " url numLicitadores \\\n", - "2270 https://www.zaragoza.es/ciudad/gestionmunicipa... 3.0 \n", + " id title expediente \\\n", + "70 6573 ESTUDIO GEOTECNICO Y ANALISIS ESTADO ACTUAL ES... 483936-24 \n", "\n", - " derivadoAcuerdoMarco derivadoSistemaDinamico subastaElectronica \\\n", - "2270 NaN NaN NaN \n", + " numeroSEA contratoMenor fechaPresentacion duracion fechaContrato \\\n", + "70 2.024002e+10 True 2024-04-18T13:00:00 21.0 [2024-04-18] \n", "\n", - " complementario regulacionArmonizada iva modificado valorEstimado \\\n", - "2270 NaN NaN NaN 0.0 NaN \n", + " lastUpdated pubDate \\\n", + "70 2024-05-09T12:20:10 2024-04-11T14:02:18 \n", "\n", - " fechaAdjudicacion clausulaProrroga fechaFormalizacion expiration lotes \\\n", - "2270 NaN NaN NaN NaN NaN \n", + " objeto importeSinIVA \\\n", + "70 A.T para estudio geotecnico s/ CTE y analisis ... 14999.99 \n", "\n", - " duracionReal type.id type.title type.type procedimiento.id \\\n", - "2270 NaN 2.0 Servicios ServicesContract 10 \n", + " importeConIVA canon url \\\n", + "70 18150.0 False https://www.zaragoza.es/ciudad/gestionmunicipa... \n", "\n", - " procedimiento.nombre entity.id entity.title entity.lastUpdated \\\n", - "2270 Menor 3 Zaragoza Vivienda 2020-10-21T12:39:19 \n", + " derivadoAcuerdoMarco derivadoSistemaDinamico subastaElectronica \\\n", + "70 NaN NaN NaN \n", "\n", - " entity.schema entity.idSchema status.id status.title cpv.id \\\n", - "2270 CIF B50005701 5 Adjudicación NaN \n", + " complementario regulacionArmonizada modificado numLicitadores iva \\\n", + "70 NaN NaN NaN [2.0] NaN \n", "\n", - " cpv.titulo servicio.id servicio.dir3 \\\n", - "2270 None 61631.0 LA0013573 \n", + " valorEstimado fechaAdjudicacion clausulaProrroga fechaFormalizacion \\\n", + "70 NaN NaN NaN NaN \n", "\n", - " servicio.title servicio.phone \\\n", - "2270 SOCIEDAD MUNICIPAL ZARAGOZA VIVIENDA, S.L.U. 976 405 888 \n", + " expiration lotes duracionReal type.id type.title type.type \\\n", + "70 NaN NaN NaN 2.0 Servicios ServicesContract \n", "\n", - " servicio.postal_code servicio.nivelAdministracion \\\n", - "2270 50003 http://datos.gob.es/kos/sector-publico/org/Niv... \n", + " procedimiento.id procedimiento.nombre entity.id \\\n", + "70 10 Menor 1 \n", "\n", - " servicio.tipoEntidadPublica \\\n", - "2270 http://datos.gob.es/kos/sector-publico/org/Tip... \n", + " entity.title entity.lastUpdated entity.schema \\\n", + "70 Ayuntamiento de Zaragoza 2020-10-21T12:43:00 DIR3 \n", "\n", - " servicio.nivelJerarquico \\\n", - "2270 3.0 \n", + " entity.idSchema status.id status.title cpv.id \\\n", + "70 L01502973 [[[[[5]]]]] Adjudicación 71332000.0 \n", "\n", - " servicio.unidadSuperior \\\n", - "2270 http://www.zaragoza.es/sede/servicio/organigra... \n", + " cpv.titulo servicio.id servicio.dir3 \\\n", + "70 Servicios de ingeniería geotécnica 62125.0 LA0027256 \n", "\n", - " servicio.unidadRaiz \\\n", - "2270 http://www.zaragoza.es/sede/servicio/organigra... \n", + " servicio.title servicio.phone \\\n", + "70 COORDINACION GENERAL DEL AREA DE URBANISMO, IN... 976 721075, 4996 \n", "\n", - " servicio.status servicio.headOf \\\n", - "2270 http://datos.gob.es/kos/sector-publico/org/Est... None \n", + " servicio.postal_code servicio.nivelAdministracion \\\n", + "70 50071 http://datos.gob.es/kos/sector-publico/org/Niv... \n", "\n", - " servicio.creationDate organoContratante.id organoContratante.dir3 \\\n", - "2270 1953-01-21T00:00:00 61631.0 LA0013573 \n", + " servicio.tipoEntidadPublica \\\n", + "70 http://datos.gob.es/kos/sector-publico/org/Tip... \n", "\n", - " organoContratante.title organoContratante.phone \\\n", - "2270 SOCIEDAD MUNICIPAL ZARAGOZA VIVIENDA, S.L.U. 976 405 888 \n", + " servicio.nivelJerarquico \\\n", + "70 4.0 \n", "\n", - " organoContratante.postal_code \\\n", - "2270 50003 \n", + " servicio.unidadSuperior \\\n", + "70 http://www.zaragoza.es/sede/servicio/organigra... \n", "\n", - " organoContratante.nivelAdministracion \\\n", - "2270 http://datos.gob.es/kos/sector-publico/org/Niv... \n", + " servicio.unidadRaiz \\\n", + "70 http://www.zaragoza.es/sede/servicio/organigra... \n", "\n", - " organoContratante.tipoEntidadPublica \\\n", - "2270 http://datos.gob.es/kos/sector-publico/org/Tip... \n", + " servicio.status servicio.headOf \\\n", + "70 http://datos.gob.es/kos/sector-publico/org/Est... LOPEZ BLAZQUEZ,JULIO \n", "\n", - " organoContratante.nivelJerarquico \\\n", - "2270 3.0 \n", + " servicio.creationDate organoContratante.id organoContratante.dir3 \\\n", + "70 2023-06-21T00:00:00 62125.0 LA0027256 \n", "\n", - " organoContratante.unidadSuperior \\\n", - "2270 http://www.zaragoza.es/sede/servicio/organigra... \n", + " organoContratante.title organoContratante.phone \\\n", + "70 COORDINACION GENERAL DEL AREA DE URBANISMO, IN... 976 721075, 4996 \n", "\n", - " organoContratante.unidadRaiz \\\n", - "2270 http://www.zaragoza.es/sede/servicio/organigra... \n", + " organoContratante.postal_code \\\n", + "70 50071 \n", "\n", - " organoContratante.status \\\n", - "2270 http://datos.gob.es/kos/sector-publico/org/Est... \n", + " organoContratante.nivelAdministracion \\\n", + "70 http://datos.gob.es/kos/sector-publico/org/Niv... \n", "\n", - " organoContratante.headOf organoContratante.creationDate \\\n", - "2270 None 1953-01-21T00:00:00 \n", + " organoContratante.tipoEntidadPublica \\\n", + "70 http://datos.gob.es/kos/sector-publico/org/Tip... \n", "\n", - " servicio.address.id organoContratante.address.id \\\n", - "2270 23953.0 23953.0 \n", + " organoContratante.nivelJerarquico \\\n", + "70 4.0 \n", "\n", - " servicio.address.address organoContratante.address.address \\\n", - "2270 SAN PABLO,61 SAN PABLO,61 \n", + " organoContratante.unidadSuperior \\\n", + "70 http://www.zaragoza.es/sede/servicio/organigra... \n", "\n", - " servicio.address.postal_code organoContratante.address.postal_code \\\n", - "2270 50003 50003 \n", + " organoContratante.unidadRaiz \\\n", + "70 http://www.zaragoza.es/sede/servicio/organigra... \n", "\n", - " servicio.address.locality organoContratante.address.locality \\\n", - "2270 Zaragoza Zaragoza \n", + " organoContratante.status \\\n", + "70 http://datos.gob.es/kos/sector-publico/org/Est... \n", "\n", - " servicio.address.countryName organoContratante.address.countryName \\\n", - "2270 España España \n", + " organoContratante.headOf organoContratante.creationDate \\\n", + "70 LOPEZ BLAZQUEZ,JULIO 2023-06-21T00:00:00 \n", "\n", - " servicio.address.geometry.type organoContratante.address.geometry.type \\\n", - "2270 Point Point \n", + " servicio.address.id organoContratante.address.id \\\n", + "70 14628.0 14628.0 \n", "\n", - " servicio.address.geometry.coordinates \\\n", - "2270 [676059.23, 4613945.99] \n", + " servicio.address.address organoContratante.address.address \\\n", + "70 HISPANIDAD, VIA,20 HISPANIDAD, VIA,20 \n", "\n", - " organoContratante.address.geometry.coordinates criterio.id \\\n", - "2270 [676059.23, 4613945.99] NaN \n", + " servicio.address.postal_code organoContratante.address.postal_code \\\n", + "70 50071 50071 \n", "\n", - " criterio.description criterio.title criterio.peso criterio.tipo.id \\\n", - "2270 None None NaN NaN \n", + " servicio.address.locality organoContratante.address.locality \\\n", + "70 Zaragoza Zaragoza \n", "\n", - " criterio.tipo.title ofertas.id ofertas.fechaAdjudicacion \\\n", - "2270 None 35033.0 2018-03-23T00:00:00 \n", + " servicio.address.countryName organoContratante.address.countryName \\\n", + "70 España España \n", "\n", - " ofertas.fechaFormalizacion ofertas.importeSinIVA ofertas.canon \\\n", - "2270 2018-03-23T00:00:00 12000.0 False \n", + " servicio.address.geometry.type organoContratante.address.geometry.type \\\n", + "70 Point Point \n", "\n", - " ofertas.autonomo ofertas.ganador ofertas.importeConIVA ofertas.iva \\\n", - "2270 False True 14520.0 NaN \n", + " servicio.address.geometry.coordinates \\\n", + "70 [674094.66, 4611606.41] \n", "\n", - " ofertas.precioUnitario ofertas.empresa.idEmpresa ofertas.empresa.nombre \\\n", - "2270 False 920.0 EL GANCHILLO SOCIAL \n", + " organoContratante.address.geometry.coordinates criterio.id \\\n", + "70 [674094.66, 4611606.41] 3607.0 \n", "\n", - " ofertas.empresa.nif ofertas.empresa.openCorporateUrl \\\n", - "2270 G99497406 https://opencorporates.com/companies/es/50067099 \n", + " criterio.description criterio.title \\\n", + "70 Criterios que permitan valorar la calidad prop... Oferta economica \n", "\n", - " ofertas.empresa.esUte ofertas.empresa.autonomo \n", - "2270 False N " - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "new" - ] - }, - { - "cell_type": "markdown", - "id": "d7a60a94", - "metadata": {}, - "source": [ - "GUARDAR EL CSV CON FORMATO SIN ESTRUCTURAS ANIDADAS" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "d2bee1b2", - "metadata": {}, - "outputs": [], - "source": [ - "# Especifica la ruta donde quieres guardar el archivo Excel\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc/minors_zaragoza/contratos_menores_zgz_actualizado.csv'\n", - "# Guardar el DataFrame en un archivo Excel\n", - "#df.to_csv(path, index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "c06f64e2", - "metadata": {}, - "outputs": [], - "source": [ - "df_madrid = df_minors.loc[df_minors['ContractFolderStatus.ProcurementProject.RealizedLocation.CountrySubentity'] == 'Madrid']" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "a83ecda9", - "metadata": {}, - "outputs": [], - "source": [ - "df_madrid_1000 = df_madrid.iloc[0:1000]" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "id": "53127fcc", - "metadata": {}, - "outputs": [], - "source": [ - "path = '/export/usuarios_ml4ds/cggamella/sproc/minors_madrid/PLACE_madrid.csv'\n", - "\n", - "# Guardar el DataFrame en un archivo Excel\n", - "df_madrid_1000.to_csv(path, index=False)" - ] - }, - { - "cell_type": "markdown", - "id": "4e3202cf", - "metadata": {}, - "source": [ - "# Contratos minors de Mad" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "id": "09884879", - "metadata": {}, - "outputs": [], - "source": [ - "# Load excel data with pandas\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-21-contratos-actividad-menores.xlsx'\n", - "df_mad_24 = pd.read_excel(path,sheet_name=0,skiprows=4,parse_dates=True) \n", - "\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-19-contratos-actividad-menores.xlsx'\n", - "df_mad_23 = pd.read_excel(path,sheet_name=0,skiprows=5,usecols=\"B:R\",parse_dates=True)\n", - "\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-17-contratos-actividad-menores.xlsx'\n", - "df_mad_22 = pd.read_excel(path,sheet_name=0, parse_dates=True)\n", - "\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-15-contratos-actividad-menores.xlsx'\n", - "df_mad_21_15 = pd.read_excel(path,sheet_name=0,parse_dates=True)\n", - "\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-13-contratos-actividad-menores.xlsx'\n", - "df_mad_21_13 = pd.read_excel(path,sheet_name=0,parse_dates=True)\n", - "\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-11-contratos-actividad-menores.xlsx'\n", - "df_mad_20 = pd.read_excel(path,sheet_name=0,parse_dates=True)\n", - "\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-9-contratos-actividad-menores.xlsx'\n", - "df_mad_19 = pd.read_excel(path,sheet_name=0,parse_dates=True)\n", - "\n", - "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-1-contratos-actividad-menores.xlsx'\n", - "df_mad_18 = pd.read_excel(path,sheet_name=0,parse_dates=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "5aa577a6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['NºRECON', 'NUMERO EXPEDIENTE', 'SECCION ', 'ORG.CONTRATACION',\n", - " 'OBJETO DEL CONTRATO', 'TIPO DE CONTRATO', 'N.I.F', 'CONTRATISTA',\n", - " 'IMPORTE', 'FECHA APROBACION', 'PLAZO', 'FCH.COMUNIC.REG'],\n", - " dtype='object')\n", - "12\n", - "El num. contratos es: 6061\n" - ] - } - ], - "source": [ - "print(df_mad_18.columns)\n", - "print(len(df_mad_18.columns))\n", - "print(\"El num. contratos es:\",len(df_mad_18))" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "1591c22e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['NºRECON', 'NUMERO EXPEDIENTE', 'SECCION ', 'ORG.CONTRATACION',\n", - " 'OBJETO DEL CONTRATO', 'TIPO DE CONTRATO', 'N.I.F', 'CONTRATISTA',\n", - " 'IMPORTE', 'FECHA APROBACION', 'PLAZO', 'FCH.COMUNIC.REG'],\n", - " dtype='object')\n", - "12\n", - "El num. contratos es: 10035\n" - ] - } - ], - "source": [ - "print(df_mad_19.columns)\n", - "print(len(df_mad_19.columns))\n", - "print(\"El num. contratos es:\",len(df_mad_19))" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "fc044f17", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['NºRECON', 'NUMERO EXPEDIENTE', 'SECCION ', 'ORG.CONTRATACION',\n", - " 'OBJETO DEL CONTRATO', 'TIPO DE CONTRATO', 'N.I.F', 'CONTRATISTA',\n", - " 'IMPORTE', 'FECHA APROBACION', 'PLAZO', 'FCH.COMUNIC.REG'],\n", - " dtype='object')\n", - "12\n", - "El num. contratos es: 6331\n" - ] - } - ], - "source": [ - "print(df_mad_20.columns)\n", - "print(len(df_mad_20.columns))\n", - "print(\"El num. contratos es:\",len(df_mad_20))" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "id": "44af9777", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['CONTRATO', 'EXPEDIENTE', 'SECCIÓN', 'ORG_CONTRATACIÓN', 'OBJETO',\n", - " 'TIPO_CONTRATO', 'CIF', 'RAZÓN_SOCIAL', 'IMPORTE', 'F_APROBACIÓN',\n", - " 'PLAZO', 'F_INSCRIPCION'],\n", - " dtype='object')\n", - "12\n", - "El num. contratos es: 510\n" - ] - } - ], - "source": [ - "print(df_mad_21_13.columns)\n", - "print(len(df_mad_21_13.columns))\n", - "print(\"El num. contratos es:\",len(df_mad_21_13))" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "855066e4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['N. DE REGISTRO DE CONTRATO', 'N. DE EXPEDIENTE', 'CENTRO - SECCION',\n", - " 'ORGANO DE CONTRATACION', 'OBJETO DEL CONTRATO', 'TIPO DE CONTRATO',\n", - " 'N. DE INVITACIONES CURSADAS', 'INVITADOS A PRESENTAR OFERTA',\n", - " 'IMPORTE LICITACION IVA INC.', 'N. LICITADORES PARTICIPANTES',\n", - " 'NIF ADJUDICATARIO', 'RAZON SOCIAL ADJUDICATARIO', 'PYME',\n", - " 'IMPORTE ADJUDICACION IVA INC.', 'FECHA DE ADJUDICACION', 'PLAZO',\n", - " 'FECHA DE INSCRIPCION'],\n", - " dtype='object')\n", - "17\n", - "El num. contratos es: 6247\n" - ] - } - ], - "source": [ - "print(df_mad_21_15.columns)\n", - "print(len(df_mad_21_15.columns))\n", - "print(\"El num. contratos es:\",len(df_mad_21_15))" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "id": "62b6953f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['N. DE REGISTRO DE CONTRATO', 'N. DE EXPEDIENTE', 'CENTRO - SECCION',\n", - " 'ORGANO DE CONTRATACION', 'OBJETO DEL CONTRATO', 'TIPO DE CONTRATO',\n", - " 'N. DE INVITACIONES CURSADAS', 'INVITADOS A PRESENTAR OFERTA',\n", - " 'IMPORTE LICITACION IVA INC.', 'N. LICITADORES PARTICIPANTES',\n", - " 'NIF ADJUDICATARIO', 'RAZON SOCIAL ADJUDICATARIO', 'PYME',\n", - " 'IMPORTE ADJUDICACION IVA INC.', 'FECHA DE ADJUDICACION', 'PLAZO',\n", - " 'FECHA DE INSCRIPCION'],\n", - " dtype='object')\n", - "17\n", - "El num. contratos es: 6695\n" - ] - } - ], - "source": [ - "print(df_mad_22.columns)\n", - "print(len(df_mad_22.columns))\n", - "print(\"El num. contratos es:\",len(df_mad_22))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "1d97d4a3", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['N. DE REGISTRO DE CONTRATO', 'N. DE EXPEDIENTE', 'CENTRO - SECCION',\n", - " 'ORGANO DE CONTRATACION', 'OBJETO DEL CONTRATO', 'TIPO DE CONTRATO',\n", - " 'N. DE INVITACIONES CURSADAS', 'INVITADOS A PRESENTAR OFERTA',\n", - " 'IMPORTE LICITACION IVA INC.', 'N. LICITADORES PARTICIPANTES',\n", - " 'NIF ADJUDICATARIO', 'RAZON SOCIAL ADJUDICATARIO', 'PYME',\n", - " 'IMPORTE ADJUDICACION IVA INC.', 'FECHA DE ADJUDICACION', 'PLAZO',\n", - " 'FECHA DE INSCRIPCION'],\n", - " dtype='object')\n", - "17\n", - "El num. contratos es: 1764\n" - ] - } - ], - "source": [ - "print(df_mad_24.columns)\n", - "print(len(df_mad_24.columns))\n", - "print(\"El num. contratos es:\",len(df_mad_24))" - ] - }, - { - "cell_type": "code", - "execution_count": 341, - "id": "56fd5b79", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['N. DE REGISTRO DE CONTRATO', 'N. DE EXPEDIENTE', 'CENTRO - SECCION',\n", - " 'ORGANO DE CONTRATACION', 'OBJETO DEL CONTRATO', 'TIPO DE CONTRATO',\n", - " 'N. DE INVITACIONES CURSADAS', 'INVITADOS A PRESENTAR OFERTA',\n", - " 'IMPORTE LICITACION IVA INC.', 'N. LICITADORES PARTICIPANTES',\n", - " 'NIF ADJUDICATARIO', 'RAZON SOCIAL ADJUDICATARIO', 'PYME',\n", - " 'IMPORTE ADJUDICACION IVA INC.', 'FECHA DE ADJUDICACION', 'PLAZO',\n", - " 'FECHA DE INSCRIPCION'],\n", - " dtype='object')\n", - "17\n", - "El num. contratos es: 5755\n" - ] - } - ], - "source": [ - "print(df_mad_23.columns)\n", - "print(len(df_mad_23.columns))\n", - "print(\"El num. contratos es:\",len(df_mad_23))" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "5bf5c3fe", - "metadata": {}, - "outputs": [], - "source": [ - "def verificar_tipos_completos(df):\n", - " # Diccionario para almacenar los tipos de datos\n", - " tipos_por_columna = {}\n", - "\n", - " # Iterar sobre cada columna para determinar si todos los elementos comparten el mismo tipo de dato\n", - " for columna in df.columns:\n", - " tipos_observados = set(df[columna].apply(type)) \n", - " # Determinar si todos los elementos son del mismo tipo\n", - " if len(tipos_observados) == 1:\n", - " tipos_por_columna[columna] = next(iter(tipos_observados)) \n", - " else:\n", - " tipos_por_columna[columna] = tipos_observados \n", - "\n", - " return tipos_por_columna\n", - "\n", - "tipos = verificar_tipos_completos(df_mad_24)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "4e4c6e8b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'N. DE REGISTRO DE CONTRATO': int,\n", - " 'N. DE EXPEDIENTE': str,\n", - " 'CENTRO - SECCION': str,\n", - " 'ORGANO DE CONTRATACION': str,\n", - " 'OBJETO DEL CONTRATO': str,\n", - " 'TIPO DE CONTRATO': str,\n", - " 'N. DE INVITACIONES CURSADAS': int,\n", - " 'INVITADOS A PRESENTAR OFERTA': str,\n", - " 'IMPORTE LICITACION IVA INC.': str,\n", - " 'N. LICITADORES PARTICIPANTES': int,\n", - " 'NIF ADJUDICATARIO': str,\n", - " 'RAZON SOCIAL ADJUDICATARIO': str,\n", - " 'PYME': str,\n", - " 'IMPORTE ADJUDICACION IVA INC.': str,\n", - " 'FECHA DE ADJUDICACION': str,\n", - " 'PLAZO': str,\n", - " 'FECHA DE INSCRIPCION': str}" + " criterio.peso criterio.tipo.id criterio.tipo.title ofertas.id \\\n", + "70 100.0 1.0 Objetivo 63940.0 \n", + "\n", + " ofertas.fechaAdjudicacion ofertas.fechaFormalizacion \\\n", + "70 2024-05-09T11:22:29 None \n", + "\n", + " ofertas.importeSinIVA ofertas.canon ofertas.autonomo ofertas.ganador \\\n", + "70 13943.0 False None True \n", + "\n", + " ofertas.importeConIVA ofertas.iva ofertas.precioUnitario \\\n", + "70 16871.03 NaN None \n", + "\n", + " ofertas.empresa.idEmpresa ofertas.empresa.nombre \\\n", + "70 335.0 EXTREMERA LED ASOCIADOS SLU \n", + "\n", + " ofertas.empresa.nif ofertas.empresa.openCorporateUrl ofertas.empresa.esUte \\\n", + "70 B99450777 None False \n", + "\n", + " ofertas.empresa.autonomo \n", + "70 N " ] }, - "execution_count": 8, + "execution_count": 520, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "tipos" + "df_filtrado" ] }, { "cell_type": "code", - "execution_count": 9, - "id": "d8d18e28", + "execution_count": null, + "id": "fcffad70", "metadata": {}, "outputs": [], "source": [ - "def verificar_tipos_pandas(df):\n", - " # Diccionario para almacenar los tipos de datos\n", - " tipos_por_columna = {}\n", - "\n", - " # Iterar sobre cada columna para determinar su tipo de dato inferido por pandas\n", - " for columna in df.columns:\n", - " tipo_inferido = df[columna].dtype # Obtiene el tipo de dato inferido por pandas para la columna\n", - "\n", - " # Almacenar el tipo de datos en el diccionario\n", - " tipos_por_columna[columna] = tipo_inferido\n", - "\n", - " return tipos_por_columna" + "mapeo_zgz = {\n", + " 'url': 'link',\n", + " 'title': 'title',\n", + " 'expediente': 'ContractFolderStatus.ContractFolderID',\n", + " 'organocontratante.dir3': 'ContractFolderStatus.LocatedContractingParty.Party.PartyIdentification.ID',\n", + " 'organoContratante.title': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", + " 'Title': 'ContractFolderStatus.ProcurementProject.Name',\n", + " 'type.id': 'ContractFolderStatus.ProcurementProject.TypeCode',\n", + " 'importeConIva': 'ContractFolderStatus.ProcurementProject.BudgetAmount.TotalAmount',\n", + " 'importeSiniva': 'ContractFolderStatus.ProcurementProject.BudgetAmount.TaxExclusiveAmount',\n", + " 'servicio.address.locality': 'ContractFolderStatus.ProcurementProject.RealizedLocation.CountrySubentity',\n", + " 'servicio.address.countryName': 'ContractFolderStatus.ProcurementProject.RealizedLocation.Address.Country.Name',\n", + " 'duracion': 'ContractFolderStatus.ProcurementProject.PlannedPeriod.DurationMeasure',\n", + " 'status': 'ContractFolderStatus.TenderResult.ResultCode',\n", + " 'fechaContrato': 'ContractFolderStatus.TenderResult.AwardDate',\n", + " 'numLicitadores': 'ContractFolderStatus.TenderResult.ReceivedTenderQuantity',\n", + " 'ofertas.empresa.nif': 'ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.ID',\n", + " 'ofertas.empresa.adjudicatario': 'ContractFolderStatus.TenderResult.WinningParty.PartyName.Name',\n", + " 'ofertas.empresa.importeSinIVA': 'ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.TaxExclusiveAmount',\n", + " 'procedimiento.id': 'ContractFolderStatus.TenderingProcess.ProcedureCode',\n", + " 'anuncios[]': 'ContractFolderStatus.ValidNoticeInfo.NoticeTypeCode',\n", + " 'urgente': 'ContractFolderStatus.TenderingProcess.UrgencyCode',\n", + " 'importeSiniva': 'ContractFolderStatus.ProcurementProject.BudgetAmount.EstimatedOverallContractAmount',\n", + " 'fechaPresentacion': 'ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.EndDate',\n", + " 'entity.title': 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.PartyName.Name',\n", + " 'servicio.address.locality': 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name',\n", + " 'fechaContrato': 'ContractFolderStatus.TenderResult.Contract.IssueDate',\n", + " 'nivelAdministracion': 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name',\n", + " 'tipoEntidadPublica': 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name',\n", + " 'anuncios.type==3.url': 'ContractFolderStatus.TechnicalDocumentReference.Attachment.ExternalReference.URI',\n", + " 'anuncios.type==3.url': 'ContractFolderStatus.AdditionalDocumentReference.ID',\n", + " 'Zaragoza': 'ContractFolderStatus.ProcurementProject.RealizedLocation.Address.CityName',\n", + " 'organoContratante.postal_code': 'ContractFolderStatus.ProcurementProject.RealizedLocation.Address.PostalZone',\n", + " 'lastupdated': 'updated',\n", + " 'status': 'ContractFolderStatus.ContractFolderStatusCode'\n", + "}" ] }, { "cell_type": "code", - "execution_count": 17, - "id": "5f5b1e15", + "execution_count": 404, + "id": "da27cb4d", "metadata": {}, "outputs": [], "source": [ - "tipos = verificar_tipos_pandas(df_minors)" + "new = df[df['expediente'] == 'VIVMENOR1-18']" ] }, { "cell_type": "code", - "execution_count": 18, - "id": "42012b55", + "execution_count": 407, + "id": "fd5179c1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'id': string[python],\n", - " 'link': string[python],\n", - " 'summary': string[python],\n", - " 'title': string[python],\n", - " 'ContractFolderStatus.ContractFolderID': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.PartyIdentification.ID': dtype('O'),\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.PartyIdentification.IDschemeName': dtype('O'),\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.Name': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.TypeCode': dtype('float64'),\n", - " 'ContractFolderStatus.ProcurementProject.SubTypeCode': dtype('float64'),\n", - " 'ContractFolderStatus.ProcurementProject.BudgetAmount.TotalAmount': dtype('float64'),\n", - " 'ContractFolderStatus.ProcurementProject.BudgetAmount.TaxExclusiveAmount': dtype('float64'),\n", - " 'ContractFolderStatus.ProcurementProject.RealizedLocation.CountrySubentity': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.RealizedLocation.CountrySubentityCode': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.RealizedLocation.Address.Country.IdentificationCode': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.RealizedLocation.Address.Country.Name': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.PlannedPeriod.DurationMeasure': dtype('float64'),\n", - " 'ContractFolderStatus.TenderResult.ResultCode': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.Description': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.AwardDate': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.ReceivedTenderQuantity': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.ID': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.IDschemeName': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.WinningParty.PartyName.Name': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.TaxExclusiveAmount': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount': dtype('O'),\n", - " 'ContractFolderStatus.TenderingProcess.ProcedureCode': dtype('float64'),\n", - " 'ContractFolderStatus.ValidNoticeInfo.NoticeTypeCode': dtype('O'),\n", - " 'ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.PublicationMediaName': dtype('O'),\n", - " 'ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.IssueDate': dtype('O'),\n", - " 'ContractFolderStatus.ProcurementProject.RequiredCommodityClassification.ItemClassificationCode': dtype('O'),\n", - " 'ContractFolderStatus.TenderingProcess.UrgencyCode': dtype('float64'),\n", - " 'ContractFolderStatus.ProcurementProject.BudgetAmount.EstimatedOverallContractAmount': dtype('float64'),\n", - " 'ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.EndDate': string[python],\n", - " 'ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.EndTime': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.PlannedPeriod.StartDate': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.PlannedPeriod.EndDate': string[python],\n", - " 'ContractFolderStatus.TenderResult.Contract.ID': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.Contract.IssueDate': dtype('O'),\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.LegalDocumentReference.ID': string[python],\n", - " 'ContractFolderStatus.LegalDocumentReference.Attachment.ExternalReference.URI': string[python],\n", - " 'ContractFolderStatus.LegalDocumentReference.Attachment.ExternalReference.DocumentHash': string[python],\n", - " 'ContractFolderStatus.TenderResult.StartDate': dtype('O'),\n", - " 'ContractFolderStatus.TechnicalDocumentReference.ID': string[python],\n", - " 'ContractFolderStatus.TechnicalDocumentReference.Attachment.ExternalReference.URI': string[python],\n", - " 'ContractFolderStatus.TechnicalDocumentReference.Attachment.ExternalReference.DocumentHash': string[python],\n", - " 'ContractFolderStatus.AdditionalDocumentReference.ID': dtype('O'),\n", - " 'ContractFolderStatus.AdditionalDocumentReference.Attachment.ExternalReference.URI': dtype('O'),\n", - " 'ContractFolderStatus.AdditionalDocumentReference.Attachment.ExternalReference.DocumentHash': dtype('O'),\n", - " 'ContractFolderStatus.ProcurementProject.RealizedLocation.Address.CityName': string[python],\n", - " 'ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.Description': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.RealizedLocation.Address.PostalZone': string[python],\n", - " 'ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod': datetime64[ns, UTC],\n", - " 'ContractFolderStatus.ProcurementProjectLot.ID': dtype('O'),\n", - " 'ContractFolderStatus.ProcurementProjectLot.IDschemeName': dtype('O'),\n", - " 'ContractFolderStatus.ProcurementProjectLot.ProcurementProject.Name': dtype('O'),\n", - " 'ContractFolderStatus.ProcurementProjectLot.ProcurementProject.BudgetAmount.TotalAmount': dtype('O'),\n", - " 'ContractFolderStatus.ProcurementProjectLot.ProcurementProject.BudgetAmount.TaxExclusiveAmount': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.AwardedTenderedProject.ProcurementProjectLotID': dtype('O'),\n", - " 'ContractFolderStatus.ProcurementProjectLot.ProcurementProject.RequiredCommodityClassification.ItemClassificationCode': dtype('O'),\n", - " 'ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.DocumentTypeCode': dtype('O'),\n", - " 'ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.Attachment.ExternalReference.URI': dtype('O'),\n", - " 'ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.Attachment.ExternalReference.FileName': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.SMEAwardedIndicator': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.AbnormallyLowTendersIndicator': dtype('O'),\n", - " 'ContractFolderStatus.ContractModification.ID': dtype('float64'),\n", - " 'ContractFolderStatus.ContractModification.ContractModificationDurationMeasure': dtype('float64'),\n", - " 'ContractFolderStatus.ContractModification.FinalDurationMeasure': dtype('float64'),\n", - " 'ContractFolderStatus.ContractModification.ContractID': dtype('float64'),\n", - " 'ContractFolderStatus.ContractModification.ContractModificationLegalMonetaryTotal.TaxExclusiveAmount': dtype('float64'),\n", - " 'ContractFolderStatus.ContractModification.FinalLegalMonetaryTotal.TaxExclusiveAmount': dtype('float64'),\n", - " 'ContractFolderStatus.ContractModification.Note': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ContractingPartyTypeCode': dtype('float64'),\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.CityName': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.PostalZone': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.AddressLine.Line': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.Country.IdentificationCode': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.Country.Name': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.Contact.Name': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.Contact.ElectronicMail': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.WebsiteURI': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.Contact.Telephone': dtype('float64'),\n", - " 'ContractFolderStatus.LocatedContractingParty.Party.Contact.Telefax': dtype('float64'),\n", - " 'ContractFolderStatus.LocatedContractingParty.ActivityCode': dtype('O'),\n", - " 'ContractFolderStatus.LocatedContractingParty.BuyerProfileURIID': string[python],\n", - " 'ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.Country.IdentificationCode': dtype('O'),\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName': string[python],\n", - " 'ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.CountrySubentityCode': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.CityName': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.PostalZone': dtype('O'),\n", - " 'ContractFolderStatus.TendererStatus.ProcurementProjectLotID': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.WinningParty.PartyLegalEntity.CompanyTypeCode': dtype('float64'),\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName': string[python],\n", - " 'ContractFolderStatus.TenderingTerms.FundingProgramCode': dtype('O'),\n", - " 'ContractFolderStatus.TenderingTerms.FundingProgram': dtype('O'),\n", - " 'ContractFolderStatus.TenderResult.AwardedOwnerNationalityCode': dtype('O'),\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName': string[python],\n", - " 'ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name': string[python],\n", - " 'ContractFolderStatus.ProcurementProject.RealizedLocation.Address.StreetName': string[python],\n", - " 'updated': dtype('O'),\n", - " 'ContractFolderStatus.ContractFolderStatusCode': dtype('O'),\n", - " 'deleted_on': datetime64[ns, UTC]}" + "['484347-24',\n", + " '495590-24',\n", + " '494175-24',\n", + " '495620-24',\n", + " '494572-24',\n", + " '494421-24',\n", + " '491721-24',\n", + " '493142-24',\n", + " 'CULMEN 19-2024',\n", + " 'CULMEN-20-2024',\n", + " '492803-24',\n", + " '493534-24',\n", + " '493675-24',\n", + " '493230-24',\n", + " 'EDUMEN 4-20241',\n", + " 'DEPMIN06-2024',\n", + " '491290-24',\n", + " '490302-24',\n", + " 'CULMEN 21-2024',\n", + " '492543-24',\n", + " 'DEPMIN07-2024',\n", + " 'CULMEN 18-2024',\n", + " 'CULMEN 25-2024',\n", + " 'CULMEN 24-2024',\n", + " 'CULMEN 23-2024',\n", + " 'CULMEN 16-2024',\n", + " 'CULMEN 17-2024',\n", + " 'CULMEN 15-2024',\n", + " 'CULMEN 14-2024',\n", + " '492367-24',\n", + " '491124-24',\n", + " '487779-24',\n", + " '481984-24',\n", + " '490393-24',\n", + " '491188-24',\n", + " '490982-24',\n", + " '490101-24',\n", + " '490065-24',\n", + " '485465-24',\n", + " '490245-24',\n", + " '488500-24',\n", + " '490125-24',\n", + " '490103-24',\n", + " 'DEPMIN02-2024',\n", + " '488250-24',\n", + " '488235-24',\n", + " '488318-24',\n", + " 'DEPMIN04-2024',\n", + " '483239-24',\n", + " '483173-24',\n", + " 'CULMEN_13_2024',\n", + " '481465-24',\n", + " '488983-24',\n", + " '487558-24',\n", + " '482532-24',\n", + " '476812-24',\n", + " '486741-24',\n", + " 'DINMEN 204-2024',\n", + " 'EDUMEN 2-2024',\n", + " '486441-24',\n", + " '484482-24',\n", + " '485837-24',\n", + " '479540-24',\n", + " 'DEPMIN05-2024',\n", + " '485236-24',\n", + " '485420-24',\n", + " '484927-24',\n", + " 'CULMEN 12-2024',\n", + " '483018-24',\n", + " '483742-24',\n", + " '483936-24',\n", + " 'EBMEN01-2024',\n", + " '483034-24',\n", + " '483072-24',\n", + " '483852-24',\n", + " '484075-24',\n", + " '482517-24',\n", + " 'CULMEN 11-2024',\n", + " 'DEPMIN03-2024',\n", + " '480963-24',\n", + " '482237-24',\n", + " '482772-24',\n", + " '482746-24',\n", + " 'PMAE 1-2024',\n", + " '479720-24',\n", + " '480754-24',\n", + " '481647-24',\n", + " '455946-23',\n", + " '480813-24',\n", + " '478638-24',\n", + " 'DINMEN 131-2024',\n", + " '479969-24',\n", + " '479678-24',\n", + " '479970-24',\n", + " 'DEPMIN01-2024',\n", + " '479458-24',\n", + " 'CULMEN 06-2024',\n", + " '477737-24',\n", + " '478379-24',\n", + " '39/2024',\n", + " 'CULMEN 09-2024',\n", + " '476297-24',\n", + " 'CULMEN 08-2024',\n", + " '477500-24',\n", + " '476409-24',\n", + " '476788-24',\n", + " '476408-24',\n", + " '473759-24',\n", + " '476757-24',\n", + " '476396-24',\n", + " '473763-24',\n", + " '476895-24',\n", + " '476800-24',\n", + " 'CULMEN 07-2024',\n", + " '476557-24',\n", + " '476028-24',\n", + " '475513-24',\n", + " '475279-24',\n", + " '475826-24',\n", + " 'CULMEN 03-2024',\n", + " 'CULMEN 04-2024',\n", + " 'CULMEN 05-2024',\n", + " '470175-23',\n", + " 'CULMEN 02-2024',\n", + " '471085-23',\n", + " 'CULMEN 01-2024',\n", + " 'VIVMENOR13-23',\n", + " '469992-23',\n", + " '470023-23',\n", + " '468919-23',\n", + " '469456-23',\n", + " '469262-23',\n", + " '468369-23',\n", + " '468281-23',\n", + " '468160-23',\n", + " '467978-23',\n", + " '468286-23',\n", + " 'CULMEN 45-2023',\n", + " 'CULMEN 46-2023',\n", + " '466834-23',\n", + " '468024-23',\n", + " '466232-23',\n", + " '466584-23',\n", + " 'DINMEN 443-2023',\n", + " 'DEPMIN14-2023',\n", + " '466700-23',\n", + " '454249-23',\n", + " '467348-23',\n", + " 'DINMEN 407-2023',\n", + " 'DINMEN 427-2023',\n", + " '465675-23',\n", + " '466165-23',\n", + " 'DINMEN 426-2023',\n", + " 'DINMEN 397-2023',\n", + " 'DINMEN 403-2023',\n", + " '460744-23',\n", + " '459643-23',\n", + " '465014-23',\n", + " 'DINMEN 406-2023',\n", + " 'DINMEN 405-2023',\n", + " 'DINMEN 422-2023',\n", + " 'DINMEN 415-2023',\n", + " '465604-23',\n", + " '464368-23',\n", + " '463199-23',\n", + " '459699-23',\n", + " 'DINMEN 400-2023',\n", + " 'DINMEN 404-2023',\n", + " 'DINMEN 396-2023',\n", + " '460629-23',\n", + " '453721-23',\n", + " '464499-23',\n", + " 'TUR 108-2023',\n", + " 'TUR 107-2023',\n", + " '463840-23',\n", + " '464294-23',\n", + " '464279-23',\n", + " '463435-23',\n", + " '462593-23',\n", + " ' DEPMIN13-2023',\n", + " '452976-23',\n", + " '457536-23',\n", + " '463209-23',\n", + " '462887-23',\n", + " '462881-23',\n", + " '463218-23',\n", + " '458681-23',\n", + " '460980-23',\n", + " '452928-23',\n", + " '454073-23',\n", + " '462150-23',\n", + " '462215-23',\n", + " '462232-23',\n", + " '460988-23',\n", + " '461334-23',\n", + " '452357-23',\n", + " '461461-23',\n", + " '461485-23',\n", + " '460628-23',\n", + " '457029-23',\n", + " '459254-23',\n", + " '459024-23',\n", + " '452083-23',\n", + " '458444-23',\n", + " '457657-23',\n", + " 'CULMEN 44-2023',\n", + " '459630-23',\n", + " '457440-23',\n", + " '458340-23',\n", + " '458738-23',\n", + " '456348-23',\n", + " 'EDUMEN 4-2023',\n", + " '457925-23',\n", + " '457752-23',\n", + " '454405-23',\n", + " 'DEPMIN15-2023',\n", + " '456265-23',\n", + " 'CULMEN 43-2023',\n", + " 'CULMEN 42-2023',\n", + " '457755-23',\n", + " '457328-23',\n", + " '457397-23',\n", + " '457675-23',\n", + " 'DINMEN 325-2023',\n", + " '456161-23',\n", + " '456370-23',\n", + " '456179-23',\n", + " 'CULMEN 41-2023',\n", + " '453465-23',\n", + " 'A/23/0095',\n", + " 'CULMEN 36-2023',\n", + " 'CULMEN-38-2023',\n", + " 'CULMEN-39-2023',\n", + " '454404-23',\n", + " \"CULMEN 37'2023\",\n", + " 'CULMEN 35-2023',\n", + " 'CULMEN 32-2023',\n", + " '453664-23',\n", + " '454304-23',\n", + " 'CULMEN 31-2023',\n", + " 'CULMEN 34-2023',\n", + " 'CULMEN 33-2023',\n", + " 'CULMEN 28-2023',\n", + " '452729-23',\n", + " '452978-23',\n", + " '453443-23',\n", + " '452262-23',\n", + " '449254-23',\n", + " '453054-23',\n", + " '451036-23',\n", + " 'CULMEN 30-2023',\n", + " '451650-23',\n", + " '451657-23',\n", + " '451649-23',\n", + " '451652-23',\n", + " '451646-23',\n", + " '451658-23',\n", + " 'CULMEN 22-2023',\n", + " '450522-23',\n", + " '450567-23',\n", + " '448203-23',\n", + " 'CULMEN 29-2023',\n", + " '449456-23',\n", + " 'CULMEN 19-2023',\n", + " '450991-23',\n", + " '450577-23',\n", + " '449192-23',\n", + " '445786-23',\n", + " '449273-23',\n", + " 'CULMEN 23-2023',\n", + " '446974-23',\n", + " '447791-23',\n", + " '446488-23',\n", + " '445556-23',\n", + " '447397-23',\n", + " '445033-23',\n", + " '446430-23',\n", + " '447492-23',\n", + " '445921-23',\n", + " '445322-23',\n", + " '445915-23',\n", + " '446621-23',\n", + " '445310-23',\n", + " 'CULMEN 20-2023',\n", + " '444641-23',\n", + " '445340-23',\n", + " '445027-23',\n", + " '442895-23',\n", + " '444022-23',\n", + " '444605-23',\n", + " '445760-23',\n", + " '444020-23',\n", + " '444492-23',\n", + " 'DEPMIN04-2023',\n", + " 'CULMEN 21-2023',\n", + " '444291-23',\n", + " '444411-23',\n", + " '444709-23',\n", + " '444606-23',\n", + " '444472-23',\n", + " '443949-23',\n", + " '444223-23',\n", + " '442898-23',\n", + " '442607-23',\n", + " '443617-23',\n", + " '443922-23',\n", + " '444283-23',\n", + " '443438-23',\n", + " 'ECO2023394',\n", + " '442565-23',\n", + " '434069-23',\n", + " '442600-23',\n", + " '440281-23',\n", + " 'DEPMIN03-2023',\n", + " '441839-23',\n", + " '442481-23',\n", + " '441688-23',\n", + " 'A/23/0095',\n", + " '440411-23',\n", + " 'CULMEN 15-2023',\n", + " 'CULMEN 18-2023',\n", + " 'DEPMINA-23-0117',\n", + " 'PMAE2-2023',\n", + " '438131-23',\n", + " 'CULMEN 16-2023',\n", + " 'CULMEN 17-2023',\n", + " 'CULMEN 07-2023',\n", + " 'CULMEN 14-2023',\n", + " '434561-23',\n", + " '438431-23',\n", + " 'CULMEN 13-2023',\n", + " 'CULMEN 11-2023',\n", + " 'CULMEN 10-2023',\n", + " 'CULMEN 09-2023',\n", + " 'PMAEMEN 1-2023',\n", + " '432557-23',\n", + " 'CULMEN 5-2023',\n", + " '435394-23',\n", + " '434150-23',\n", + " '430587-23',\n", + " 'CULMEN 12-2023',\n", + " '429771-23',\n", + " '435664-23',\n", + " '429808-23',\n", + " 'DEPMIN02-2023',\n", + " '433888-23',\n", + " '432668-23',\n", + " '431984-23',\n", + " '432949-23',\n", + " 'CULMEN 6-2023',\n", + " '432842-23',\n", + " '432954-23',\n", + " '432883-23',\n", + " '430277-23',\n", + " 'CULMEN 8-2023',\n", + " 'A/23/0069',\n", + " '428442-23',\n", + " 'DEPMIN06-2023',\n", + " 'DEPMIN07-2023',\n", + " 'DEPMIN10-2023',\n", + " 'DEPMIN09-2023',\n", + " 'DEPMIN05-2023',\n", + " 'DEPMIN08-2023',\n", + " '432880-23',\n", + " '431097-23',\n", + " '431588-23',\n", + " '428070-23',\n", + " '430046-23',\n", + " '431095-23',\n", + " '430284-23',\n", + " '427145-23',\n", + " '429162-23',\n", + " '429531-23',\n", + " '427854-23',\n", + " '427142-23',\n", + " '427134-23',\n", + " 'DEPMIN11-2023',\n", + " '430252-23',\n", + " '430270-23',\n", + " '429250-23',\n", + " '428673-23',\n", + " '427868-23',\n", + " '427789-23',\n", + " '429915-23',\n", + " '429023-23',\n", + " 'CULMEN 2-2023',\n", + " '428069-23',\n", + " '427208-23',\n", + " '427004-23',\n", + " '426521-23',\n", + " '425133-23',\n", + " '424187-23',\n", + " '417104-22',\n", + " '417087-22',\n", + " 'CULMEN 1-2023',\n", + " '422885-23',\n", + " '422880-23',\n", + " '422875-23',\n", + " '422870',\n", + " '422876',\n", + " '422876',\n", + " 'EDUMEN4-2022',\n", + " '416596-22',\n", + " '415954-22',\n", + " 'CULMEN 52-2022',\n", + " 'DINMEN 439-2022',\n", + " '418459-22',\n", + " '418071-22',\n", + " '418140-22',\n", + " 'DINMEN 417-20212',\n", + " 'DINMEN 418-2022',\n", + " 'DINMEN 429/2022',\n", + " 'VIVMENOR22-22',\n", + " '416082-22',\n", + " '414095-22',\n", + " '416725-22',\n", + " '416186-22',\n", + " 'Culmen 51/2022',\n", + " '416089-22',\n", + " 'DINMEN 389-2022',\n", + " 'DINMEN 386-2022',\n", + " 'DINMEN 390-2022',\n", + " 'DINMEN 387-2022',\n", + " 'DINMEN 391-2022',\n", + " 'DINMEN 404-2022',\n", + " 'DINMEN 388-2022',\n", + " 'DINMEN 392-2022',\n", + " 'DINMEN 393-2022',\n", + " '415989-22',\n", + " '415731-22',\n", + " '415145-22',\n", + " '415592-22',\n", + " '415593-22',\n", + " '414552-22',\n", + " 'DINMEN379-2022',\n", + " '414028-22',\n", + " 'DINMEN 368-2022',\n", + " '405443-22',\n", + " '411314-22',\n", + " '412383-22',\n", + " '413148-22',\n", + " '405435-22',\n", + " '413075-22',\n", + " 'CULMEN 34-2022',\n", + " '411793-22',\n", + " '412749-22',\n", + " '412507-22',\n", + " '411685-22',\n", + " '411626-22',\n", + " '410493-22',\n", + " '398812-22',\n", + " '406866-22',\n", + " '410520-22',\n", + " '410287-22',\n", + " '411386-22',\n", + " '396344-22',\n", + " '405460-22',\n", + " '411353-22',\n", + " '407002-22',\n", + " '410348-22',\n", + " '409534-22',\n", + " '409535-22',\n", + " 'VIVMENOR16-22',\n", + " 'CULMEN 51-2022',\n", + " '405474-22',\n", + " 'DINMEN339-2022',\n", + " '409964-22',\n", + " '408002-22',\n", + " '408918-22',\n", + " '408320-22',\n", + " '407776-22',\n", + " '408216-22',\n", + " '408649-22',\n", + " '408227-22',\n", + " '409176-22',\n", + " '408299-22',\n", + " '406502-22',\n", + " '405871-22',\n", + " '404758-22',\n", + " '406771-22',\n", + " '406950-22',\n", + " '406753-22',\n", + " '402769-22',\n", + " '403527-22',\n", + " '407031-22',\n", + " '407041-22',\n", + " '405786-22',\n", + " '406677-22',\n", + " 'DEPMIN06-2022',\n", + " '407401-22',\n", + " 'CULMEN 45-2022',\n", + " '405188-22',\n", + " '406764-22',\n", + " 'CM 50/2022',\n", + " '400393-22',\n", + " '404514-22',\n", + " '405374-22',\n", + " '404989-22',\n", + " 'CM 48/2022',\n", + " 'CM 49/2022',\n", + " 'CM 49/2022',\n", + " '404956-22',\n", + " '405088-22',\n", + " '404608-22',\n", + " '404718-22',\n", + " '406192-22',\n", + " '406663-22',\n", + " '405697-22',\n", + " '404715-22',\n", + " '405072-22',\n", + " '404408-22',\n", + " '394351-22',\n", + " '405109-22',\n", + " '404409-22',\n", + " '404380-22',\n", + " '404180-22',\n", + " 'CULMEN 46-2022',\n", + " '405644-22',\n", + " '404204-22',\n", + " '404018-22',\n", + " 'CULMEN 42-2022',\n", + " 'CULMEN 41-2022',\n", + " 'CULMEN 47-2022',\n", + " '402345-22',\n", + " '402376-22',\n", + " '398971-22',\n", + " '402919-22',\n", + " '398749-22',\n", + " '398067-22',\n", + " '398763-22',\n", + " '398959-22',\n", + " '398574-22',\n", + " '398805-22',\n", + " 'CULMEN 44-2022',\n", + " 'CULMEN 43-2022',\n", + " '396847-22',\n", + " '402284-22',\n", + " 'DEPMIN05-2022',\n", + " '399464-22',\n", + " '402817-22',\n", + " '399257-22',\n", + " 'CULMEN 40-2022',\n", + " '402569-22',\n", + " 'VIVMENOR18-22',\n", + " 'CULMEN 38-2022',\n", + " 'CULMEN 39-2022',\n", + " '399213-22',\n", + " '400326-22',\n", + " '401560 - 2022 / 20220071726',\n", + " '401560-22',\n", + " 'CULMEN 37-2022',\n", + " '400677-22',\n", + " '400747-22',\n", + " '399362-22',\n", + " '400025-22',\n", + " '400027-22',\n", + " '400447-22',\n", + " '399260-22',\n", + " '396875-22',\n", + " '398265-22',\n", + " '398587-22',\n", + " 'PMAE5-2022',\n", + " 'PMAEMEN 6-2022',\n", + " 'PMAE4-2022',\n", + " '398035-22',\n", + " '398451-22',\n", + " '398441-22',\n", + " '398463-22',\n", + " 'CULMEN 36-2022',\n", + " 'CULMEN 35-2022',\n", + " '396051-22',\n", + " '380843-22',\n", + " '397191-22',\n", + " '396356-22',\n", + " '396352-22',\n", + " ' DEPMIN04-2022',\n", + " 'DEPMIN03-2022',\n", + " '396130-22',\n", + " '395432-22',\n", + " 'CULMEN 33-2022',\n", + " '395809-22',\n", + " '395860-22',\n", + " '394748-22',\n", + " 'CULMEN 32-2022',\n", + " 'CULMEN 31-2022',\n", + " 'CULMEN 30-2022',\n", + " '395128-22',\n", + " '395308-22',\n", + " '387576-22',\n", + " 'EDUMEN 2-2022',\n", + " '394352-22',\n", + " '392264-22',\n", + " '393709-22',\n", + " '393167-22',\n", + " '394266-22',\n", + " '393920-22',\n", + " '393169-22',\n", + " '394264-22',\n", + " '393165-22',\n", + " '391906-22',\n", + " '393498-22',\n", + " '393285-22',\n", + " nan,\n", + " 'CULMEN 22-2022',\n", + " '393524-22',\n", + " '393077-22',\n", + " '392016-22',\n", + " '392513-22',\n", + " '392851-22',\n", + " '392926-22',\n", + " '390660-22',\n", + " '391899-22',\n", + " '392261-22',\n", + " '391784-22',\n", + " 'VIVMENOR8-22',\n", + " '390446-22',\n", + " '384617-22',\n", + " '388673-22',\n", + " 'CULMEN 27/2022',\n", + " 'CULMEN 29-2022',\n", + " '0002/2022',\n", + " '0001/2022',\n", + " '391159-22',\n", + " '391155-22',\n", + " '391505-22',\n", + " '387707-22',\n", + " '389746-22',\n", + " '387801-22',\n", + " '390246-22',\n", + " '387765-22',\n", + " '389918-22',\n", + " '388081-22',\n", + " '387540-22',\n", + " '388665-22',\n", + " '376750-22',\n", + " 'CULMEN 23-2022',\n", + " 'CULMEN 26/2022',\n", + " '388625-22',\n", + " '387446-22',\n", + " '388984-22',\n", + " '386225-22',\n", + " '385695-22',\n", + " '388196-22',\n", + " '0003/2022',\n", + " '384412-22',\n", + " '386793-22',\n", + " 'CULMEN 25/2022',\n", + " 'VIVMENOR3-22',\n", + " '386192-22',\n", + " '386276-22',\n", + " '386693-22',\n", + " '386272-22',\n", + " '385109-22',\n", + " '384429-22',\n", + " '384553-22',\n", + " 'CULMEN 21-2022',\n", + " '384581-22',\n", + " '386160-22',\n", + " '382508-22',\n", + " '384239-22',\n", + " '385569-22',\n", + " '376636-22',\n", + " '383543-22',\n", + " '381305-22',\n", + " '384101-22',\n", + " '384318-22',\n", + " 'CULMEN 19-2022',\n", + " '383950-22',\n", + " 'CULMEN 18-2022',\n", + " '379224-22',\n", + " '381464-22',\n", + " 'CULMEN 14-2022',\n", + " '379333-22',\n", + " '378714-22',\n", + " '382982-22',\n", + " 'CULMEN 20-2022',\n", + " 'CULMEN 13-2022',\n", + " '378686-22',\n", + " 'A/22/0024',\n", + " '379247-22',\n", + " '380594-22',\n", + " 'A/22/0042',\n", + " '377045-22',\n", + " '379179-22',\n", + " '377647-22',\n", + " 'CULMEN 17-2022',\n", + " '376892-22',\n", + " '378193-22',\n", + " 'CULMEN 16-2022',\n", + " 'CULMEN 15-2022',\n", + " '376692-22',\n", + " '376562-22',\n", + " 'VIVMENOR2-22',\n", + " '378543-22',\n", + " '378406-22',\n", + " '378173-22',\n", + " '376628-22',\n", + " 'VIVMENOR1-22',\n", + " '375371-22',\n", + " '376167-22',\n", + " 'DINMEN 24-2022',\n", + " '377175-22',\n", + " '375958-22',\n", + " '376113-22',\n", + " '375861-22',\n", + " '376664-22',\n", + " '374771-22',\n", + " '375380-22',\n", + " '376983-22',\n", + " '376425-22',\n", + " '376966-22',\n", + " '369161-22',\n", + " 'CULMEN 05-2022',\n", + " 'CULMEN 11-2022',\n", + " 'CULMEN 06-2022',\n", + " 'CULMEN 07-2022',\n", + " 'CULMEN 12-2022',\n", + " 'CULMEN 09-2022',\n", + " '370792-22',\n", + " '375746-22',\n", + " '375735-22',\n", + " 'CULMEN 10-2022',\n", + " 'CULMEN 08-2022',\n", + " 'DEPMIN01-2022',\n", + " '370530-22',\n", + " '375135-22',\n", + " '371957-22',\n", + " 'DEPMIN02-2022',\n", + " '374317-22',\n", + " '373365-22',\n", + " 'CULMEN 04-2022',\n", + " '373805-22',\n", + " '372353-22',\n", + " '371723-22',\n", + " '371209-22',\n", + " '371183-22',\n", + " 'CULMEN 01-2022',\n", + " 'CULMEN 02-2022',\n", + " '372355-22',\n", + " '371069-22',\n", + " '371064-22',\n", + " '371062-22',\n", + " '370538-22',\n", + " '369922-22',\n", + " '370205-22',\n", + " '369306-22',\n", + " '369065-22',\n", + " 'DEPMIN13-2021',\n", + " 'CULMEN 52-2021',\n", + " '364242-21',\n", + " '364831-21',\n", + " '364621-21',\n", + " '364223-21',\n", + " '364001-21',\n", + " '364257-21',\n", + " '364249-21',\n", + " 'CULMEN 49-2021',\n", + " 'CULMEN 50-2021',\n", + " 'DEPMIN 12-2021',\n", + " 'DINMEN 257-2021',\n", + " '363989-21',\n", + " 'DEPMIN 09-2021',\n", + " 'DEPMIN10-2021',\n", + " 'CULMEN 51-2021',\n", + " 'DINMEN 249-2021',\n", + " 'DINMEN 248-2021',\n", + " 'DINMEN 252-2021',\n", + " 'DINMEN 255-2021',\n", + " '363642-21',\n", + " '363841-21',\n", + " '361166-21',\n", + " 'DINMEN 246-2021',\n", + " 'DINMEN 227-2021',\n", + " '363456-21',\n", + " '361247-21',\n", + " '361185-21',\n", + " '358785-21',\n", + " 'VIVMENOR23-21',\n", + " 'DINMEN 254-2021',\n", + " 'DEPMIN11-2021',\n", + " '362138-21',\n", + " '360907-21',\n", + " 'DINMEN 241-2021',\n", + " '360210-21',\n", + " 'DINMEN 240-2021',\n", + " 'DINMEN 239-2021',\n", + " 'DINMEN 238-2021',\n", + " 'DINMEN 244-2021',\n", + " 'DINMEN 242-2021',\n", + " 'DINMEN 243-2021',\n", + " '360533-21',\n", + " '361744-21',\n", + " 'CULMEN 48-2021',\n", + " '360659-21',\n", + " 'CULMEN 47-2021',\n", + " '360913-21',\n", + " '360109-21',\n", + " '360324-21',\n", + " '360322-21',\n", + " '360797-21',\n", + " '360322-21',\n", + " '360797-21',\n", + " '360626-21',\n", + " '359103-21',\n", + " '359809-21',\n", + " '359784-21',\n", + " 'CULMEN 46-2021',\n", + " '360310-21',\n", + " '360106-21',\n", + " '358887-21',\n", + " '353265-21',\n", + " '357915-21',\n", + " '351193-21',\n", + " 'DINMEN 221-2021',\n", + " '359503-21',\n", + " '356950-21',\n", + " 'CULMEN 42-2021',\n", + " 'CULMEN 45-2021',\n", + " '354352-21',\n", + " '358384-21',\n", + " 'CULMEN 44-2021',\n", + " 'CULMEN 43-2021',\n", + " '353365-21',\n", + " '357758-21',\n", + " '358338-21',\n", + " '357000-21',\n", + " '358342-21',\n", + " '357871-21',\n", + " '359259-21',\n", + " 'DINMEN 179-2021',\n", + " '338760-21',\n", + " 'CULMEN 41-2021',\n", + " '359267-21',\n", + " '356731-21',\n", + " '357524-21',\n", + " '352734-21',\n", + " '355636-21',\n", + " ' DEPMIN07-2021',\n", + " '355653-21',\n", + " '356275-21',\n", + " '351345-21',\n", + " '357096-21',\n", + " '356562-21',\n", + " '357107-21',\n", + " '353098-21',\n", + " '355665-21',\n", + " '356226-21',\n", + " '354934-21',\n", + " '355027-21',\n", + " '356047-21',\n", + " 'DEPMIN08-2021',\n", + " 'VIVMENOR22-21',\n", + " '354528-21',\n", + " '354343-21',\n", + " '356044-21',\n", + " '354927-21',\n", + " '353254-21',\n", + " '354418-21',\n", + " '353647-21',\n", + " '354229-21',\n", + " '353634-21',\n", + " '353361-21',\n", + " '351417-21',\n", + " 'CULMEN 40-2021',\n", + " '352898-21',\n", + " '148-21',\n", + " '351198-21',\n", + " '353741-21',\n", + " '351997-21',\n", + " '352661-21',\n", + " '352563-21',\n", + " '326293-21',\n", + " 'EDUMEN 4-2021',\n", + " '54771/2021',\n", + " 'CULMEN 27-2021',\n", + " 'CULMEN 37-2021',\n", + " 'CULMEN 28-2021',\n", + " 'CULMEN 26-2021',\n", + " 'CULMEN 35-2021',\n", + " '353650-21',\n", + " '146-21',\n", + " 'CULMEN 36-2021',\n", + " 'CULMEN 38-2021',\n", + " 'CULMEN 32-2021',\n", + " '351953-21',\n", + " '350754-21',\n", + " '351112-21',\n", + " 'CULMEN 33-2021',\n", + " 'CULMEN 29-2021',\n", + " 'CM25/2021',\n", + " 'CULMEN 34-2021',\n", + " '350930-21',\n", + " '350615-21',\n", + " 'CUL 0053575-21',\n", + " '351401-21',\n", + " '351409-21',\n", + " '351370-21',\n", + " '351422-21',\n", + " '351418-21',\n", + " '350987-21',\n", + " 'CULMEN 24-2021',\n", + " '351626-21',\n", + " '351635-21',\n", + " 'DEPMIN06-2021',\n", + " 'CULMEN 39-2021',\n", + " '350912-21',\n", + " '350971-21',\n", + " 'CULMEN 22-2021',\n", + " '350600-21',\n", + " '350921-21',\n", + " '344790-21',\n", + " '349598-21',\n", + " 'CULMEN 31-2021',\n", + " 'CULMEN 30-2021',\n", + " '348708-21',\n", + " '349365-21',\n", + " '349352-21',\n", + " '349691-21',\n", + " '346832-21',\n", + " '347424-21',\n", + " 'VIVMENOR19-21',\n", + " 'CULMEN 21-2021',\n", + " '348887-21',\n", + " 'CULMEN 23-2021',\n", + " '349985-21',\n", + " 'DINMEN 136-2021',\n", + " '348987-21',\n", + " '344295-21',\n", + " '348489-21',\n", + " 'VIVMENOR18-21',\n", + " '347780-21',\n", + " '347786-21',\n", + " '347784-21',\n", + " '341760-21',\n", + " '346241-21',\n", + " '345543-21',\n", + " '345547-21',\n", + " '344297-21',\n", + " '345209-21',\n", + " '343515-21',\n", + " '346450-21',\n", + " 'DEPMIN05-2021',\n", + " '340716-21',\n", + " '331520-21',\n", + " '339312-21',\n", + " 'CULMENOR-20-21',\n", + " '344169-21',\n", + " '344171-21',\n", + " '344837-21',\n", + " '344283-21',\n", + " '345745-21',\n", + " 'DINMEN 147-21',\n", + " '344167-21',\n", + " '345606-21',\n", + " '344407-21',\n", + " '344924-21',\n", + " '340273-21',\n", + " '345114-21',\n", + " '340879-21',\n", + " '342368-21',\n", + " '341781-21',\n", + " '340285-21',\n", + " '340242-21',\n", + " '339175-21',\n", + " '341950-21',\n", + " '340455-21',\n", + " '340675-21',\n", + " '340429-21',\n", + " '340381-21',\n", + " '339172-21',\n", + " 'VIVMENOR14-21',\n", + " 'CULMEN 19-2021',\n", + " '338417-21',\n", + " '339472-21',\n", + " '339203-21',\n", + " '337870-21',\n", + " 'DEPMIN04-2021',\n", + " '326347-21',\n", + " '337784-21',\n", + " '338669-21',\n", + " '336379-21',\n", + " '337905-21',\n", + " '337988-21',\n", + " '335371-21',\n", + " '334566-21',\n", + " '337075-21',\n", + " '335624-21',\n", + " '336634-21',\n", + " '336261-21',\n", + " 'CULMEN 18-2021',\n", + " '335841-21',\n", + " '336014-21',\n", + " '334694-21',\n", + " 'CULMEN 17-2021',\n", + " '334735-21',\n", + " '335292-21',\n", + " '334598-21',\n", + " '333833-21',\n", + " '334059-21',\n", + " 'VIVMENOR9-21',\n", + " ...]" ] }, - "execution_count": 18, + "execution_count": 407, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "tipos" + "df['expediente'].tolist()" ] }, { - "cell_type": "code", - "execution_count": 80, - "id": "fcf68563", + "cell_type": "markdown", + "id": "d7a60a94", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['8.0'], dtype=object)" - ] - }, - "execution_count": 80, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "df_minors['ContractFolderStatus.TenderResult.ResultCode'].iloc[0]" + "GUARDAR EL CSV CON FORMATO SIN ESTRUCTURAS ANIDADAS" ] }, { "cell_type": "code", - "execution_count": 68, - "id": "770eaaa0", + "execution_count": 18, + "id": "d2bee1b2", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "numpy.float64" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "type(df_mad_21_13['IMPORTE'][0])" + "# Especifica la ruta donde quieres guardar el archivo Excel\n", + "path = '/export/usuarios_ml4ds/cggamella/sproc/minors_zaragoza/contratos_menores_zgz_actualizado.csv'\n", + "# Guardar el DataFrame en un archivo Excel\n", + "#df.to_csv(path, index=False)" ] }, { - "cell_type": "code", - "execution_count": 52, - "id": "4752953f", + "cell_type": "markdown", + "id": "4e3202cf", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['SUMINISTRO' 'SERVICIOS' 'OBRAS' 'OTROS']\n" - ] - } - ], "source": [ - "valores_unicos = df_mad_20['TIPO DE CONTRATO'].unique()\n", - "print(valores_unicos)" + "# Contratos de Madrid" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 10, "id": "093f8ea9", "metadata": {}, "outputs": [], "source": [ "path = '/export/usuarios_ml4ds/cggamella/NP-Company-Process/data/DESCARGAS_ENTREGABLES/minors.parquet'\n", - "df_minors = pd.read_parquet(path)" + "df_minors = pd.read_parquet(path)\n", + "\n", + "def unify_colname(col):\n", + " return \".\".join([el for el in col if el])\n", + "\n", + "df_minors.columns = [unify_colname(col) for col in df_minors.columns]" ] }, { "cell_type": "code", - "execution_count": 16, - "id": "7cefb06f", + "execution_count": 298, + "id": "09884879", "metadata": {}, "outputs": [], "source": [ - "def unify_colname(col):\n", - " return \".\".join([el for el in col if el])\n", + "# FORMATO 1\n", + "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-21-contratos-actividad-menores.xlsx'\n", + "df_mad_24 = pd.read_excel(path,sheet_name=0,skiprows=4,parse_dates=True) \n", + "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-19-contratos-actividad-menores.xlsx'\n", + "df_mad_23 = pd.read_excel(path,sheet_name=0,skiprows=5,usecols=\"B:R\",parse_dates=True)\n", + "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-17-contratos-actividad-menores.xlsx'\n", + "df_mad_22 = pd.read_excel(path,sheet_name=0, parse_dates=True)\n", + "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-15-contratos-actividad-menores.xlsx'\n", + "df_mad_21_15 = pd.read_excel(path,sheet_name=0,parse_dates=True)\n", "\n", - "df_minors.columns = [unify_colname(col) for col in df_minors.columns]" + "# FORMATO 2\n", + "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-13-contratos-actividad-menores.xlsx'\n", + "df_mad_21_13 = pd.read_excel(path,sheet_name=0,parse_dates=True)\n", + "\n", + "# FORMATO 3\n", + "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-11-contratos-actividad-menores.xlsx'\n", + "df_mad_20 = pd.read_excel(path,sheet_name=0,parse_dates=True)\n", + "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-9-contratos-actividad-menores.xlsx'\n", + "df_mad_19 = pd.read_excel(path,sheet_name=0,parse_dates=True)\n", + "path = '/export/usuarios_ml4ds/cggamella/sproc.backup/DESCARGAS/300253-1-contratos-actividad-menores.xlsx'\n", + "df_mad_18 = pd.read_excel(path,sheet_name=0,parse_dates=True)" ] }, { "cell_type": "code", - "execution_count": null, - "id": "6bcdab93", + "execution_count": 266, + "id": "5bf5c3fe", + "metadata": {}, + "outputs": [], + "source": [ + "def verificar_tipos_completos(df):\n", + " tipos_por_columna = {}\n", + " for columna in df.columns:\n", + " tipos_observados = set(df[columna].apply(type)) \n", + " if len(tipos_observados) == 1:\n", + " tipos_por_columna[columna] = next(iter(tipos_observados)) \n", + " else:\n", + " tipos_por_columna[columna] = tipos_observados \n", + " return tipos_por_columna\n", + "\n", + "tipos = verificar_tipos_completos(df_mad_21_13)" + ] + }, + { + "cell_type": "code", + "execution_count": 267, + "id": "4e4c6e8b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'CONTRATO': int,\n", + " 'EXPEDIENTE': str,\n", + " 'SECCIÓN': str,\n", + " 'ORG_CONTRATACIÓN': str,\n", + " 'OBJETO': str,\n", + " 'TIPO_CONTRATO': str,\n", + " 'CIF': str,\n", + " 'RAZÓN_SOCIAL': str,\n", + " 'IMPORTE': float,\n", + " 'F_APROBACIÓN': pandas._libs.tslibs.timestamps.Timestamp,\n", + " 'PLAZO': float,\n", + " 'F_INSCRIPCION': pandas._libs.tslibs.timestamps.Timestamp}" + ] + }, + "execution_count": 267, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tipos" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "d8d18e28", "metadata": {}, "outputs": [], "source": [ - "df_minors['TenderingTerms.AppealTerms.PresentationPeriod.EndDate'][0]" + "def verificar_tipos_pandas(df):\n", + " tipos_por_columna = {}\n", + " for columna in df.columns:\n", + " tipo_inferido = df[columna].dtype \n", + " tipos_por_columna[columna] = tipo_inferido\n", + " return tipos_por_columna" ] }, { @@ -2075,12 +3653,12 @@ }, { "cell_type": "code", - "execution_count": 65, - "id": "a7d820a2", + "execution_count": 377, + "id": "234cd1c4", "metadata": {}, "outputs": [], "source": [ - "# Dictionary for year second document of 2024,2023,2022,2021-15\n", + "# Dictionary for documents of 2024,2023,2022,2021-15\n", "mapeo_24_23_22_21_15 = {\n", " 'N. DE EXPEDIENTE': 'ContractFolderStatus.ContractFolderID',\n", " 'ORGANO DE CONTRATACION': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", @@ -2094,84 +3672,48 @@ " 'IMPORTE ADJUDICACION IVA INC.': 'ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount',\n", " 'FECHA DE ADJUDICACION': 'ContractFolderStatus.TenderResult.AwardDate',\n", " 'PLAZO': 'ContractFolderStatus.ProcurementProject.PlannedPeriod.DurationMeasure',\n", - " 'CENTRO - SECCION': 'METADATA1',\n", - " 'FECHA DE ADJUDICACION': 'METADATA2',\n", - " 'N. DE INVITACIONES CURSADAS': 'METADATA3',\n", - " 'INVITADOS A PRESENTAR OFERTA': 'METADATA4'\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "id": "b0244a0f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2000.0" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_minors['ContractFolderStatus.ProcurementProject.BudgetAmount.TaxExclusiveAmount'][3]" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "id": "7d1d0b79", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'3.630,00€'" - ] - }, - "execution_count": 93, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_mad_24['IMPORTE LICITACION IVA INC.'][43]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7d06b69d", - "metadata": {}, - "outputs": [], - "source": [ + " 'CENTRO - SECCION': 'SECCION.Madrid',\n", + " 'N. DE INVITACIONES CURSADAS': 'N. DE INVITACIONES CURSADAS.Madrid',\n", + " 'INVITADOS A PRESENTAR OFERTA': 'INVITADOS A PRESENTAR OFERTA.Madrid'\n", + "}\n", + "\n", "# Dictionary for year second document of 2021-13\n", "mapeo_21_13 = {\n", - " 'OBJETO': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", - " 'ORG_CONTRATACIÓN': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", " 'EXPEDIENTE': 'ContractFolderStatus.ContractFolderID',\n", - " 'CONTRATISTA': 'ContractFolderStatus.TenderResult.WinningParty.PartyName.Name',\n", + " 'ORG_CONTRATACIÓN': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", + " 'OBJETO': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", + " 'TIPO_CONTRATO': 'ContractFolderStatus.ProcurementProject.TypeCode',\n", " 'CIF': 'ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.ID',\n", + " 'RAZÓN_SOCIAL': 'ContractFolderStatus.TenderResult.WinningParty.PartyName.Name',\n", " 'IMPORTE': 'ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount',\n", - " 'TIPO_CONTRATO': 'ContractFolderStatus.ProcurementProject.TypeCode'\n", + " 'F_APROBACIÓN':'ContractFolderStatus.TenderResult.AwardDate',\n", + " 'PLAZO': 'ContractFolderStatus.ProcurementProject.PlannedPeriod.DurationMeasure',\n", + " 'SECCIÓN': 'SECCION.Madrid'\n", "}\n", + "\n", "# Dictionary for years 2020, 2019, 2018\n", "mapeo_20_19_18 = {\n", - " 'OBJETO DEL CONTRATO': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", - " 'ORG.CONTRATACION': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", " 'NUMERO EXPEDIENTE': 'ContractFolderStatus.ContractFolderID',\n", + " 'ORG.CONTRATACION': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", + " 'OBJETO DEL CONTRATO': 'ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name',\n", + " 'TIPO DE CONTRATO': 'ContractFolderStatus.ProcurementProject.TypeCode',\n", + " 'CONTRATISTA': 'ContractFolderStatus.TenderResult.WinningParty.PartyName.Name',\n", " 'RAZON SOCIAL ADJUDICATARIO': 'ContractFolderStatus.TenderResult.WinningParty.PartyName.Name',\n", " 'N.I.F': 'ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.ID',\n", - " 'N. LICITADORES PARTICIPANTES': 'ContractFolderStatus.TenderResult.ReceivedTenderQuantity',\n", " 'IMPORTE': 'ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount',\n", - " 'TIPO DE CONTRATO': 'ContractFolderStatus.ProcurementProject.TypeCode'\n", - "}\n", - "\n", + " 'F_APROBACIÓN': 'ContractFolderStatus.TenderResult.AwardDate',\n", + " 'PLAZO': 'ContractFolderStatus.ProcurementProject.PlannedPeriod.DurationMeasure',\n", + " 'SECCION': 'SECCION.Madrid'\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d06b69d", + "metadata": {}, + "outputs": [], + "source": [ "'''\n", "# Renombrar las columnas en df_mad_24 para que coincidan con las de df_minors\n", "df_mad_24_renamed = df_mad_24.rename(columns=mapeo)\n", @@ -2181,94 +3723,30 @@ "print(\"Este es el segundo:\\n\",df_mad_24_renamed)\n", "'''\n", "#Antes de hacer mapeo poner en el mismo formato que en PLACE las columnas!\n", - "\n", "dataframes = [df_mad_24, df_mad_23, df_mad_22, df_mad_21_15]\n", "\n", "for df in dataframes:\n", " # Aplicar el mapeo\n", - " df_renamed = df.rename(columns=mapeo_24_23_22_21_15)\n", - " \n", - " # Asegurarse de que solo las columnas mapeadas se añaden a df_minors\n", - " df_renamed = df_renamed[list(mapeo.values())]\n", - " \n", - " # Añadir las filas de df_renamed a df_minors\n", - " df_minors = pd.concat([df_minors, df_renamed], ignore_index=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "id": "fa77fe55", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['2017-12-21'], dtype=object)" - ] - }, - "execution_count": 60, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_minors['ContractFolderStatus.TenderResult.AwardDate'].iloc[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "id": "5a6f4f1c", - "metadata": {}, - "outputs": [], - "source": [ - "def ejemplos_aleatorios(df, df_minors, mapeo):\n", - " ejemplos = {}\n", - " tipos_datos = [] # Lista para almacenar los tipos de datos únicos\n", - "\n", - " for col_izq, col_der in mapeo.items():\n", - " if col_izq in df.columns:\n", - " ejemplo_izq = df[col_izq].sample(1).iloc[0]\n", - " tipo_dato_izq = str(df[col_izq].dtype) # Obtener el tipo de dato de la columna izquierda\n", - " else:\n", - " ejemplo_izq = 'Columna no encontrada en df'\n", - " tipo_dato_izq = None\n", - " \n", - " if col_der in df_minors.columns:\n", - " ejemplo_der = df_minors[col_der].sample(1).iloc[0]\n", - " tipo_dato_der = str(df_minors[col_der].dtype) # Obtener el tipo de dato de la columna derecha\n", - " else:\n", - " ejemplo_der = 'Columna no encontrada en df_minors'\n", - " tipo_dato_der = None\n", - " \n", - " ejemplos[col_izq] = {\n", - " 'Ejemplo df': ejemplo_izq,\n", - " 'Tipo de dato df': tipo_dato_izq,\n", - " 'Ejemplo df_minors': ejemplo_der,\n", - " 'Tipo de dato df_minors': tipo_dato_der\n", - " }\n", - " \n", - " # Agregar tipos de dato a la lista si no son None y no están ya incluidos\n", - " if tipo_dato_izq and tipo_dato_izq not in tipos_datos:\n", - " tipos_datos.append(tipo_dato_izq)\n", - " if tipo_dato_der and tipo_dato_der not in tipos_datos:\n", - " tipos_datos.append(tipo_dato_der)\n", + " df_renamed = df.rename(columns=mapeo_24_23_22_21_15)\n", + " \n", + " # Asegurarse de que solo las columnas mapeadas se añaden a df_minors\n", + " df_renamed = df_renamed[list(mapeo.values())]\n", " \n", - " return ejemplos, tipos_datos" + " # Añadir las filas de df_renamed a df_minors\n", + " df_minors = pd.concat([df_minors, df_renamed], ignore_index=True)" ] }, { "cell_type": "code", - "execution_count": 117, - "id": "17f36bb7", + "execution_count": 97, + "id": "d8474f19", "metadata": {}, "outputs": [], "source": [ - "def replace_names_by_codes(df):\n", + "def replace_names_by_codes(df, column_name):\n", " tipo_contrato_codigo = {\n", " \"Suministros\": 1.0,\n", - " \"SUMINISTRO\": 1.0, \n", + " \"SUMINISTRO\": 1.0,\n", " \"Servicios\": 2.0,\n", " \"SERVICIOS\": 2.0,\n", " \"Concesión de Servicios\": 2.0,\n", @@ -2276,25 +3754,20 @@ " \"OBRAS\": 3.0,\n", " \"Gestión de Servicios Públicos\": 21.0,\n", " \"Concesión de Obras Públicas\": 31.0,\n", - " \"Colaboración entre el sector público y sector privado\": 40.0,\n", + " \"Colaboración entre el sector público y el sector privado\": 40.0,\n", " \"Administrativo especial\": 7.0,\n", " \"Privado\": 8.0,\n", " \"Patrimonial\": 50.0,\n", " \"Otros\": 999.0,\n", " \"OTROS\": 999.0\n", " }\n", - " \n", - " if 'TIPO DE CONTRATO' in df.columns:\n", - " df['TIPO DE CONTRATO'] = df['TIPO DE CONTRATO'].map(tipo_contrato_codigo).astype('float64').fillna(df['TIPO DE CONTRATO'])\n", "\n", - " if 'TIPO_CONTRATO' in df.columns:\n", - " df['TIPO_CONTRATO'] = df['TIPO_CONTRATO'].map(tipo_contrato_codigo).astype('float64').fillna(df['TIPO_CONTRATO'])\n", - " \n", + " if column_name in df.columns:\n", + " df[column_name] = df[column_name].map(tipo_contrato_codigo).astype('float64').fillna(df[column_name])\n", + "\n", " return df\n", "\n", - "#Modificar columna de dinero\n", - "def convertir_importe_a_float(df):\n", - " # Función para limpiar y convertir el valor a float\n", + "def convertir_importe_a_float(df, column_name):\n", " def limpiar_valor_importe(valor):\n", " if pd.isna(valor):\n", " return valor # Mantener NaN como tal\n", @@ -2307,122 +3780,147 @@ " # En caso de error, retornar NaN o un valor por defecto\n", " return pd.NA\n", "\n", - " # Aplicar la función de limpieza a la columna específica\n", - " if 'IMPORTE LICITACION IVA INC.' in df.columns:\n", - " df['IMPORTE LICITACION IVA INC.'] = df['IMPORTE LICITACION IVA INC.'].apply(limpiar_valor_importe).astype('float64')\n", - " if 'IMPORTE ADJUDICACION IVA INC.' in df.columns:\n", - " df['IMPORTE ADJUDICACION IVA INC.'] = df['IMPORTE ADJUDICACION IVA INC.'].apply(limpiar_valor_importe).astype('float64')\n", - " return df" + " if column_name in df.columns:\n", + " df[column_name] = df[column_name].apply(limpiar_valor_importe).astype('float64')\n", + "\n", + " return df\n", + "\n", + "\n", + "def convert_to_float_array(x):\n", + " # Convertir el entero a una cadena formateada como float y almacenar en un array con dtype object\n", + " return np.array([format(float(x), '.1f')], dtype=object)\n", + "\n", + "def convert_to_object_array(x):\n", + " # Almacenar la cadena en un array de numpy con dtype object\n", + " return np.array([x], dtype=object)\n", + "\n", + "# Función para convertir una fecha de formato 'dd/mm/yy' o 'dd/mm/yyyy' a 'yyyy-mm-dd' y almacenarla en un ndarray\n", + "def convert_date_to_array(date_str):\n", + " try:\n", + " # Intentar convertir usando el formato con el año de cuatro dígitos\n", + " date_object = datetime.strptime(date_str, '%d/%m/%Y')\n", + " except ValueError:\n", + " # Si falla, intentar con el formato de año de dos dígitos\n", + " date_object = datetime.strptime(date_str, '%d/%m/%y')\n", + " \n", + " # Formatear la fecha a 'yyyy-mm-dd'\n", + " formatted_date = date_object.strftime('%Y-%m-%d')\n", + " \n", + " # Almacenar la fecha formateada en un array de numpy con dtype object\n", + " return np.array([formatted_date], dtype=object)\n", + "\n", + "def convert_to_float64(s):\n", + " try:\n", + " if s is None:\n", + " return None\n", + " # Reemplazar comas por puntos para manejar formatos numéricos con comas como separador decimal\n", + " s = s.replace(',', '.')\n", + " return np.float64(s)\n", + " except ValueError as e:\n", + " print(f\"Error al convertir '{s}' a float64: {e}\")\n", + " return None\n", + " \n", + "# Función para convertir valores 'SI'/'NO' en un array de numpy con 'true'/'false'\n", + "def convert_pyme_to_boolean_array(value):\n", + " if value == 'SI':\n", + " return np.array(['true'], dtype=object) # Asegura que el resultado sea un array de numpy\n", + " elif value == 'NO':\n", + " return np.array(['false'], dtype=object) # Asegura que el resultado sea un array de numpy\n", + " else:\n", + " return np.array(['undefined'], dtype=object) # Para cualquier otro valor no esperado\n", + "\n", + "def convertir_timestamp_a_array(timestamp):\n", + " # Convertir el timestamp a formato de fecha 'YYYY-MM-DD'\n", + " fecha_formateada = timestamp.strftime('%Y-%m-%d')\n", + " # Crear un array de numpy con el resultado y especificar el tipo object\n", + " resultado_array = np.array([fecha_formateada], dtype=object)\n", + " return resultado_array" ] }, { - "cell_type": "code", - "execution_count": 110, - "id": "ee57d9df", + "cell_type": "markdown", + "id": "194f95a9", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "str" - ] - }, - "execution_count": 110, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "type(df_mad_24['IMPORTE LICITACION IVA INC.'].iloc[0])" + "Concatenar todos los excel desde el 2024 hasta 2021-15" ] }, { "cell_type": "code", - "execution_count": 111, - "id": "cdd29cc9", + "execution_count": 315, + "id": "42ae6977", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'1.392,11€'" - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "df_mad_24['IMPORTE LICITACION IVA INC.'][0]" + "# Concatenar los DataFrames\n", + "dfs = [df_mad_24, df_mad_23, df_mad_22, df_mad_21_15]\n", + "df_bloque1 = pd.concat(dfs, ignore_index=True)" ] }, { "cell_type": "code", - "execution_count": 118, - "id": "61490494", + "execution_count": 317, + "id": "26f628a3", + "metadata": {}, + "outputs": [], + "source": [ + "# Convertir los valores\n", + "df_bloque1 = replace_names_by_codes(df_bloque1, 'TIPO DE CONTRATO')\n", + "df_bloque1 = convertir_importe_a_float(df_bloque1, 'IMPORTE LICITACION IVA INC.')\n", + "df_bloque1['N. LICITADORES PARTICIPANTES'] = df_bloque1['N. LICITADORES PARTICIPANTES'].apply(convert_to_float_array)\n", + "df_bloque1['NIF ADJUDICATARIO'] = df_bloque1['NIF ADJUDICATARIO'].apply(convert_to_object_array)\n", + "df_bloque1['RAZON SOCIAL ADJUDICATARIO'] = df_bloque1['RAZON SOCIAL ADJUDICATARIO'].apply(convert_to_object_array)\n", + "df_bloque1['FECHA DE ADJUDICACION'] = df_bloque1['FECHA DE ADJUDICACION'].apply(convert_date_to_array)\n", + "df_bloque1['PLAZO'] = df_bloque1['PLAZO'].apply(convert_to_float64)\n", + "df_bloque1['PYME'] = df_bloque1['PYME'].apply(convert_pyme_to_boolean_array)" + ] + }, + { + "cell_type": "markdown", + "id": "8af1865c", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6171.0" - ] - }, - "execution_count": 118, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "df_minors['ContractFolderStatus.ProcurementProject.BudgetAmount.TotalAmount'][0]" + "Aquí voy a trabajar sobre el año 2021-doc13" ] }, { "cell_type": "code", - "execution_count": 108, - "id": "8a2e97a6", + "execution_count": 311, + "id": "d03d33d2", + "metadata": {}, + "outputs": [], + "source": [ + "df_mad_21_13 = replace_names_by_codes(df_mad_21_13, 'TIPO_CONTRATO')\n", + "df_mad_21_13['CIF'] = df_mad_21_13['CIF'].apply(convert_to_object_array)\n", + "df_mad_21_13['RAZÓN_SOCIAL'] = df_mad_21_13['RAZÓN_SOCIAL'].apply(convert_to_object_array)\n", + "df_mad_21_13['IMPORTE'] = df_mad_21_13['IMPORTE'].apply(convert_to_float_array)\n", + "df_mad_21_13['F_APROBACIÓN'] = df_mad_21_13['F_APROBACIÓN'].apply(convertir_timestamp_a_array)" + ] + }, + { + "cell_type": "markdown", + "id": "b06dc5fb", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ 1392.11],\n", - " [10890. ],\n", - " [17895.9 ],\n", - " ...,\n", - " [ 745.36],\n", - " [16262.4 ],\n", - " [11809.6 ]])" - ] - }, - "execution_count": 108, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "df_mad_24" + "Aquí trabajo con los años 2020, 2019 y 2018" ] }, { "cell_type": "code", - "execution_count": 115, - "id": "2f77c279", + "execution_count": 389, + "id": "ddc03955", "metadata": {}, "outputs": [], "source": [ - "# Aplicar la función al DataFrame df_mad_24\n", - "#df_mad_24 = replace_names_by_codes(df_mad_24)\n", - "\n", - "# Aplicar la función al DataFrame df_mad_24\n", - "df_mad_24 = convertir_importe_a_float(df_mad_24)" + "# Concatenar los DataFrames\n", + "dfs = [df_mad_20, df_mad_19, df_mad_18]\n", + "df_bloque3 = pd.concat(dfs, ignore_index=True)" ] }, { "cell_type": "code", - "execution_count": 116, - "id": "18d41eba", + "execution_count": 359, + "id": "4352a749", "metadata": {}, "outputs": [ { @@ -2446,668 +3944,144 @@ " \n", " \n", " \n", - " N. DE REGISTRO DE CONTRATO\n", - " N. DE EXPEDIENTE\n", - " CENTRO - SECCION\n", - " ORGANO DE CONTRATACION\n", + " NºRECON\n", + " NUMERO EXPEDIENTE\n", + " SECCION\n", + " ORG.CONTRATACION\n", " OBJETO DEL CONTRATO\n", " TIPO DE CONTRATO\n", - " N. DE INVITACIONES CURSADAS\n", - " INVITADOS A PRESENTAR OFERTA\n", - " IMPORTE LICITACION IVA INC.\n", - " N. LICITADORES PARTICIPANTES\n", - " NIF ADJUDICATARIO\n", - " RAZON SOCIAL ADJUDICATARIO\n", - " PYME\n", - " IMPORTE ADJUDICACION IVA INC.\n", - " FECHA DE ADJUDICACION\n", + " N.I.F\n", + " CONTRATISTA\n", + " IMPORTE\n", + " FECHA APROBACION\n", " PLAZO\n", - " FECHA DE INSCRIPCION\n", + " FCH.COMUNIC.REG\n", " \n", " \n", " \n", " \n", " 0\n", - " 2023014490\n", - " 105/2023/02969\n", - " DISTRITO DE CHAMARTÍN\n", - " COORDINADOR DEL DISTRITO DE CHAMARTÍN\n", - " Elaboración, suministro e instalación de 30 FO...\n", - " Suministros\n", - " 1\n", - " (50586893A) JOSÉ NICOLÁS FERRANDO SANDOVAL. PY...\n", - " 1392.11\n", - " 1\n", - " 50586893A\n", - " JOSÉ NICOLÁS FERRANDO SANDOVAL\n", - " NO\n", - " 1.392,11€\n", - " 28/12/23\n", - " 2,13\n", - " 03/01/24\n", + " M202000001\n", + " EMT/2019/10109\n", + " EMPRESA MUNICIPAL DE TRANSPORTES S.A.\n", + " DIRECTOR\n", + " SUMINISTRO UNA BOMBA NEUMATICA PARA EL TALLER ...\n", + " SUMINISTRO\n", + " B83579441\n", + " GONPERSA TRADE, S.L.\n", + " 1197.60\n", + " 2019-12-17\n", + " 0.50\n", + " 2020-01-02\n", " \n", " \n", " 1\n", - " 2023014491\n", - " 105/2023/02614\n", - " DISTRITO DE CHAMARTÍN\n", - " COORDINADOR DEL DISTRITO DE CHAMARTÍN\n", - " Contrato menor para el diseño, instalación, mo...\n", - " Servicios\n", - " 3\n", - " (B78342615) TRITOMA S.L.. PYME: SI\\n(B85873859...\n", - " 10890.00\n", - " 1\n", - " B78342615\n", - " TRITOMA S.L.\n", - " SI\n", - " 10.667,36€\n", - " 04/12/23\n", - " 1,13\n", - " 03/01/24\n", + " M202000002\n", + " EMT/2019/10101\n", + " EMPRESA MUNICIPAL DE TRANSPORTES S.A.\n", + " DIRECTOR\n", + " ADECUACION ELECTRICA DEL APARCAMIENTO DE GINZO...\n", + " SERVICIOS\n", + " B87683470\n", + " PROYECTOS DESARROLLOS Y RESULTADOS S.L.\n", + " 6612.65\n", + " 2019-12-12\n", + " 0.93\n", + " 2020-01-02\n", " \n", " \n", " 2\n", - " 2023014494\n", - " CM23/00526/2\n", - " Empresa Municipal de Transportes E.M.T.\n", - " DIRECTOR/A GERENTE\n", - " ADQUISICIÓN DE 5 ELEVADORES ELECTRICOS PARA EL...\n", - " Suministros\n", - " 5\n", - " (A28021350) REDONDO Y GARCIA, S.A.. PYME: SI\\n...\n", - " 17895.90\n", - " 1\n", - " B03749876\n", - " TEAM BIKE, S.L.\n", - " NO\n", - " 17.895,90€\n", - " 11/12/23\n", - " 1,00\n", - " 03/01/24\n", + " M202000003\n", + " 103/2019/04514\n", + " DISTRITO DE RETIRO\n", + " COORDINADOR/A DEL DISTRITO DE RETIRO\n", + " SUMINISTRO DE DOS FUENTES DE AGUA PARA EL EDIF...\n", + " SUMINISTRO\n", + " B90441809\n", + " ABALIER EUROPE, SL\n", + " 930.01\n", + " 2019-12-27\n", + " 0.03\n", + " 2020-01-02\n", " \n", " \n", " 3\n", - " 2023014496\n", - " CM23/00541/2\n", - " Empresa Municipal de Transportes E.M.T.\n", - " DIRECTOR/A GERENTE\n", - " SUMINISTRO DE CARAMELOS CABALGATA DE REYES 2024\n", - " Suministros\n", - " 1\n", - " (B66818873) MUSART CREATIVE MERCHANDISING S.L....\n", - " 7865.00\n", - " 1\n", - " B66818873\n", - " MUSART CREATIVE MERCHANDISING S.L.\n", - " SI\n", - " 7.865,00€\n", - " 27/12/23\n", - " 0,50\n", - " 03/01/24\n", - " \n", - " \n", - " 4\n", - " 2023014498\n", - " PR23-0134.5\n", - " Madrid Destino, Cultura, Turismo y Negocio, S.A.\n", - " GERENTE DE MATADERO\n", - " PR23-0134.5 GASTO MENOR DEL SUMINISTRO, INCL...\n", - " Suministros\n", - " 3\n", - " (B85885168) ARTERIA LOGÍSTICA DEL ARTE S.L.. P...\n", - " 18029.00\n", - " 1\n", - " B85885168\n", - " ARTERIA LOGÍSTICA DEL ARTE S.L.\n", - " SI\n", - " 17.756,75€\n", - " 27/11/23\n", - " 0,33\n", - " 03/01/24\n", - " \n", - " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 1759\n", - " 2024004223\n", - " 511/2024/09562\n", - " VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG\n", - " DIRECTORA GENERAL DE TRANSPARENCIA Y CALIDAD\n", - " SERVICIOS DE APOYO A LOS TRABAJOS DE MANTENIMI...\n", - " Servicios\n", - " 5\n", - " (A83057034) GMV SOLUCIONES GLOBALES INTERNET S...\n", - " 10406.00\n", - " 1\n", - " G86361862\n", - " FUNDACIÓN CIUDADANA CIVIO\n", - " NO\n", - " 9.196,00€\n", - " 17/04/24\n", - " 12,00\n", - " 30/04/24\n", - " \n", - " \n", - " 1760\n", - " 2024004224\n", - " 511202413409\n", - " VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG\n", - " DIRECTOR GENERAL DE POLICÍA MUNICIPAL\n", - " ACONDICIONAMIENTO PUNTUAL DEL ACCESO DE VEHÍCU...\n", - " Obras\n", - " 3\n", - " (A19001205) ORTIZ CONSTRUCCIONES Y PROYECTOS, ...\n", - " 47264.91\n", - " 2\n", - " A19001205\n", - " ORTIZ CONSTRUCCIONES Y PROYECTOS, S.A.\n", - " NO\n", - " 47.264,91€\n", - " 18/04/24\n", - " 1,33\n", - " 30/04/24\n", - " \n", - " \n", - " 1761\n", - " 2024004225\n", - " 511202413138\n", - " VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG\n", - " DIRECTOR GENERAL DE POLICÍA MUNICIPAL\n", - " SUMINISTRO DE 22 (VEINTIDOS) BEBEDEROS PARA LO...\n", - " Suministros\n", - " 3\n", - " (B30027429) COPELE,S.L.. PYME: SI\\n(B53588471)...\n", - " 745.36\n", - " 1\n", - " B30027429\n", - " COPELE,S.L.\n", - " SI\n", - " 712,19€\n", - " 18/04/24\n", - " 1,00\n", - " 30/04/24\n", - " \n", - " \n", - " 1762\n", - " 2024004226\n", - " 511202413846\n", - " VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG\n", - " DIRECTOR GENERAL DE POLICÍA MUNICIPAL\n", - " ADQUISICIÓN DE REPUESTOS EMISORAS RADIO\n", - " Suministros\n", - " 3\n", - " (A19024249) AMPER SISTEMAS,S.A.. PYME: N0\\n(B3...\n", - " 16262.40\n", - " 3\n", - " B33360736\n", - " CEOTRONICS, S.L.\n", - " SI\n", - " 11.482,90€\n", - " 22/04/24\n", - " 5,00\n", - " 30/04/24\n", - " \n", - " \n", - " 1763\n", - " 2024004234\n", - " 135202400010\n", - " VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG\n", - " DIRECTORA GENERAL DE SAMUR - PROTECCIÓN CIVIL\n", - " SUMINISTRO DE 20 PULSIOXIMETROS Y 20 SET DE LA...\n", - " Suministros\n", - " 3\n", - " (B01875756) AKIRE 20 SL. PYME: SI\\n(B32311763)...\n", - " 11809.60\n", - " 3\n", - " B01875756\n", - " AKIRE 20 SL\n", - " SI\n", - " 11.325,60€\n", - " 17/04/24\n", - " 0,50\n", - " 30/04/24\n", + " M202000004\n", + " 101/2019/07924\n", + " DISTRITO DE CENTRO\n", + " COORDINADOR/A DEL DISTRITO CENTRO\n", + " CONTRATO MENOR DE SERVICIOS PARA LA ORGANIZACI...\n", + " SERVICIOS\n", + " B84663822\n", + " SASSOT SOUND, S.L.\n", + " 18137.90\n", + " 2019-12-20\n", + " 1.00\n", + " 2020-01-02\n", " \n", " \n", "\n", - "

1764 rows × 17 columns

\n", "" ], "text/plain": [ - " N. DE REGISTRO DE CONTRATO N. DE EXPEDIENTE \\\n", - "0 2023014490 105/2023/02969 \n", - "1 2023014491 105/2023/02614 \n", - "2 2023014494 CM23/00526/2 \n", - "3 2023014496 CM23/00541/2 \n", - "4 2023014498 PR23-0134.5 \n", - "... ... ... \n", - "1759 2024004223 511/2024/09562 \n", - "1760 2024004224 511202413409 \n", - "1761 2024004225 511202413138 \n", - "1762 2024004226 511202413846 \n", - "1763 2024004234 135202400010 \n", - "\n", - " CENTRO - SECCION \\\n", - "0 DISTRITO DE CHAMARTÍN \n", - "1 DISTRITO DE CHAMARTÍN \n", - "2 Empresa Municipal de Transportes E.M.T. \n", - "3 Empresa Municipal de Transportes E.M.T. \n", - "4 Madrid Destino, Cultura, Turismo y Negocio, S.A. \n", - "... ... \n", - "1759 VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG \n", - "1760 VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG \n", - "1761 VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG \n", - "1762 VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG \n", - "1763 VICEALCALDÍA, PORTAVOZ, SEGURID. Y EMERG \n", - "\n", - " ORGANO DE CONTRATACION \\\n", - "0 COORDINADOR DEL DISTRITO DE CHAMARTÍN \n", - "1 COORDINADOR DEL DISTRITO DE CHAMARTÍN \n", - "2 DIRECTOR/A GERENTE \n", - "3 DIRECTOR/A GERENTE \n", - "4 GERENTE DE MATADERO \n", - "... ... \n", - "1759 DIRECTORA GENERAL DE TRANSPARENCIA Y CALIDAD \n", - "1760 DIRECTOR GENERAL DE POLICÍA MUNICIPAL \n", - "1761 DIRECTOR GENERAL DE POLICÍA MUNICIPAL \n", - "1762 DIRECTOR GENERAL DE POLICÍA MUNICIPAL \n", - "1763 DIRECTORA GENERAL DE SAMUR - PROTECCIÓN CIVIL \n", - "\n", - " OBJETO DEL CONTRATO TIPO DE CONTRATO \\\n", - "0 Elaboración, suministro e instalación de 30 FO... Suministros \n", - "1 Contrato menor para el diseño, instalación, mo... Servicios \n", - "2 ADQUISICIÓN DE 5 ELEVADORES ELECTRICOS PARA EL... Suministros \n", - "3 SUMINISTRO DE CARAMELOS CABALGATA DE REYES 2024 Suministros \n", - "4 PR23-0134.5 GASTO MENOR DEL SUMINISTRO, INCL... Suministros \n", - "... ... ... \n", - "1759 SERVICIOS DE APOYO A LOS TRABAJOS DE MANTENIMI... Servicios \n", - "1760 ACONDICIONAMIENTO PUNTUAL DEL ACCESO DE VEHÍCU... Obras \n", - "1761 SUMINISTRO DE 22 (VEINTIDOS) BEBEDEROS PARA LO... Suministros \n", - "1762 ADQUISICIÓN DE REPUESTOS EMISORAS RADIO Suministros \n", - "1763 SUMINISTRO DE 20 PULSIOXIMETROS Y 20 SET DE LA... Suministros \n", - "\n", - " N. DE INVITACIONES CURSADAS \\\n", - "0 1 \n", - "1 3 \n", - "2 5 \n", - "3 1 \n", - "4 3 \n", - "... ... \n", - "1759 5 \n", - "1760 3 \n", - "1761 3 \n", - "1762 3 \n", - "1763 3 \n", - "\n", - " INVITADOS A PRESENTAR OFERTA \\\n", - "0 (50586893A) JOSÉ NICOLÁS FERRANDO SANDOVAL. PY... \n", - "1 (B78342615) TRITOMA S.L.. PYME: SI\\n(B85873859... \n", - "2 (A28021350) REDONDO Y GARCIA, S.A.. PYME: SI\\n... \n", - "3 (B66818873) MUSART CREATIVE MERCHANDISING S.L.... \n", - "4 (B85885168) ARTERIA LOGÍSTICA DEL ARTE S.L.. P... \n", - "... ... \n", - "1759 (A83057034) GMV SOLUCIONES GLOBALES INTERNET S... \n", - "1760 (A19001205) ORTIZ CONSTRUCCIONES Y PROYECTOS, ... \n", - "1761 (B30027429) COPELE,S.L.. PYME: SI\\n(B53588471)... \n", - "1762 (A19024249) AMPER SISTEMAS,S.A.. PYME: N0\\n(B3... \n", - "1763 (B01875756) AKIRE 20 SL. PYME: SI\\n(B32311763)... \n", - "\n", - " IMPORTE LICITACION IVA INC. N. LICITADORES PARTICIPANTES \\\n", - "0 1392.11 1 \n", - "1 10890.00 1 \n", - "2 17895.90 1 \n", - "3 7865.00 1 \n", - "4 18029.00 1 \n", - "... ... ... \n", - "1759 10406.00 1 \n", - "1760 47264.91 2 \n", - "1761 745.36 1 \n", - "1762 16262.40 3 \n", - "1763 11809.60 3 \n", - "\n", - " NIF ADJUDICATARIO RAZON SOCIAL ADJUDICATARIO PYME \\\n", - "0 50586893A JOSÉ NICOLÁS FERRANDO SANDOVAL NO \n", - "1 B78342615 TRITOMA S.L. SI \n", - "2 B03749876 TEAM BIKE, S.L. NO \n", - "3 B66818873 MUSART CREATIVE MERCHANDISING S.L. SI \n", - "4 B85885168 ARTERIA LOGÍSTICA DEL ARTE S.L. SI \n", - "... ... ... ... \n", - "1759 G86361862 FUNDACIÓN CIUDADANA CIVIO NO \n", - "1760 A19001205 ORTIZ CONSTRUCCIONES Y PROYECTOS, S.A. NO \n", - "1761 B30027429 COPELE,S.L. SI \n", - "1762 B33360736 CEOTRONICS, S.L. SI \n", - "1763 B01875756 AKIRE 20 SL SI \n", - "\n", - " IMPORTE ADJUDICACION IVA INC. FECHA DE ADJUDICACION PLAZO \\\n", - "0 1.392,11€ 28/12/23 2,13 \n", - "1 10.667,36€ 04/12/23 1,13 \n", - "2 17.895,90€ 11/12/23 1,00 \n", - "3 7.865,00€ 27/12/23 0,50 \n", - "4 17.756,75€ 27/11/23 0,33 \n", - "... ... ... ... \n", - "1759 9.196,00€ 17/04/24 12,00 \n", - "1760 47.264,91€ 18/04/24 1,33 \n", - "1761 712,19€ 18/04/24 1,00 \n", - "1762 11.482,90€ 22/04/24 5,00 \n", - "1763 11.325,60€ 17/04/24 0,50 \n", - "\n", - " FECHA DE INSCRIPCION \n", - "0 03/01/24 \n", - "1 03/01/24 \n", - "2 03/01/24 \n", - "3 03/01/24 \n", - "4 03/01/24 \n", - "... ... \n", - "1759 30/04/24 \n", - "1760 30/04/24 \n", - "1761 30/04/24 \n", - "1762 30/04/24 \n", - "1763 30/04/24 \n", - "\n", - "[1764 rows x 17 columns]" - ] - }, - "execution_count": 116, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_mad_24" - ] - }, - { - "cell_type": "code", - "execution_count": 113, - "id": "ea64c1e5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "numpy.float64" - ] - }, - "execution_count": 113, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(df_minors['ContractFolderStatus.ProcurementProject.BudgetAmount.TaxExclusiveAmount'][5664])" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "id": "dad97efa", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "numpy.float64" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(df_mad_24['TIPO DE CONTRATO'].iloc[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "id": "0ec8266a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "numpy.float64" - ] - }, - "execution_count": 69, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(df_minors['ContractFolderStatus.ProcurementProject.TypeCode'].iloc[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "86bc37d7", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Columna: N. DE EXPEDIENTE\n", - " Ejemplo de df: 511202414030\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: EC-2023/612\n", - " Tipo de dato de df_minors: string\n", - "\n", - "Columna: ORGANO DE CONTRATACION\n", - " Ejemplo de df: DIRECTOR GENERAL DE DEPORTE\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: Dirección Provincial de la Consejería de Hacienda y Administraciones Públicas en Ciudad Real\n", - " Tipo de dato de df_minors: string\n", - "\n", - "Columna: OBJETO DEL CONTRATO\n", - " Ejemplo de df: DISEÑO, PRODUCCIÓN, REALIZACIÓN, POSTPRODUCCIÓN Y EDICIÓN DE UN VIDEO ASÍ COMO LA REALIZACIÓN DE FOTOGRAFIAS PARA SU PROYECCIÓN EN EL ACTO DE ENTREGA DE LOS PREMIOS NACIONALES DE COMERCIO INTERIOR 2023\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: Actuación en el municipio de Monterrubio de la Armuña el día 30 del mes de agosto de 2019 dentro del programa Noches de Cultura 2019 organizado por la Diputación Provincial de Salamanca\n", - " Tipo de dato de df_minors: string\n", - "\n", - "Columna: TIPO DE CONTRATO\n", - " Ejemplo de df: Servicios\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: 3.0\n", - " Tipo de dato de df_minors: float64\n", - "\n", - "Columna: IMPORTE LICITACION IVA INC.\n", - " Ejemplo de df: 3.599,75€\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: 17414.32\n", - " Tipo de dato de df_minors: float64\n", - "\n", - "Columna: N. LICITADORES PARTICIPANTES\n", - " Ejemplo de df: 1\n", - " Tipo de dato de df: int64\n", - " Ejemplo de df_minors: ['3.0']\n", - " Tipo de dato de df_minors: object\n", - "\n", - "Columna: NIF ADJUDICATARIO\n", - " Ejemplo de df: B82425364\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: ['B30476600']\n", - " Tipo de dato de df_minors: object\n", - "\n", - "Columna: RAZON SOCIAL ADJUDICATARIO\n", - " Ejemplo de df: GUTHERSA, S.A.\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: ['JOSEP MIQUEL BISBAL SANZ']\n", - " Tipo de dato de df_minors: object\n", - "\n", - "Columna: PYME\n", - " Ejemplo de df: SI\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: ['nan']\n", - " Tipo de dato de df_minors: object\n", - "\n", - "Columna: IMPORTE ADJUDICACION IVA INC.\n", - " Ejemplo de df: 2.950,00€\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: ['6555.49']\n", - " Tipo de dato de df_minors: object\n", - "\n", - "Columna: FECHA DE ADJUDICACION\n", - " Ejemplo de df: 15/03/24\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: Columna no encontrada en df_minors\n", - " Tipo de dato de df_minors: None\n", - "\n", - "Columna: PLAZO\n", - " Ejemplo de df: 5,00\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: 1.0\n", - " Tipo de dato de df_minors: float64\n", - "\n", - "Columna: CENTRO - SECCION\n", - " Ejemplo de df: MercaMadrid\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: Columna no encontrada en df_minors\n", - " Tipo de dato de df_minors: None\n", - "\n", - "Columna: N. DE INVITACIONES CURSADAS\n", - " Ejemplo de df: 5\n", - " Tipo de dato de df: int64\n", - " Ejemplo de df_minors: Columna no encontrada en df_minors\n", - " Tipo de dato de df_minors: None\n", - "\n", - "Columna: INVITADOS A PRESENTAR OFERTA\n", - " Ejemplo de df: (B61740361) IDEXX LABORATORIOS SL. PYME: SI\n", - " Tipo de dato de df: object\n", - " Ejemplo de df_minors: Columna no encontrada en df_minors\n", - " Tipo de dato de df_minors: None\n", - "\n", - "Tipos de datos únicos en ambos DataFrames:\n", - "object\n", - "string\n", - "float64\n", - "int64\n" - ] - } - ], - "source": [ - "ejemplos, tipos_datos = ejemplos_aleatorios(df_mad_24, df_minors, mapeo_24_23_22_21_15)\n", - "\n", - "# Para imprimir los ejemplos y los tipos de datos de las columnas\n", - "for col, data in ejemplos.items():\n", - " print(f\"\\nColumna: {col}\")\n", - " print(f\" Ejemplo de df: {data['Ejemplo df']}\")\n", - " print(f\" Tipo de dato de df: {data['Tipo de dato df']}\")\n", - " print(f\" Ejemplo de df_minors: {data['Ejemplo df_minors']}\")\n", - " print(f\" Tipo de dato de df_minors: {data['Tipo de dato df_minors']}\")\n", - "\n", - "# Imprimir los tipos de datos únicos recogidos\n", - "print(\"\\nTipos de datos únicos en ambos DataFrames:\")\n", - "for tipo in tipos_datos:\n", - " print(tipo)" - ] - }, - { - "cell_type": "code", - "execution_count": 457, - "id": "15df246f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "numpy.ndarray" - ] - }, - "execution_count": 457, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(df_minors['ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount'].iloc[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 456, - "id": "c88de1bf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "str" + " NºRECON NUMERO EXPEDIENTE SECCION \\\n", + "0 M202000001 EMT/2019/10109 EMPRESA MUNICIPAL DE TRANSPORTES S.A. \n", + "1 M202000002 EMT/2019/10101 EMPRESA MUNICIPAL DE TRANSPORTES S.A. \n", + "2 M202000003 103/2019/04514 DISTRITO DE RETIRO \n", + "3 M202000004 101/2019/07924 DISTRITO DE CENTRO \n", + "\n", + " ORG.CONTRATACION \\\n", + "0 DIRECTOR \n", + "1 DIRECTOR \n", + "2 COORDINADOR/A DEL DISTRITO DE RETIRO \n", + "3 COORDINADOR/A DEL DISTRITO CENTRO \n", + "\n", + " OBJETO DEL CONTRATO TIPO DE CONTRATO \\\n", + "0 SUMINISTRO UNA BOMBA NEUMATICA PARA EL TALLER ... SUMINISTRO \n", + "1 ADECUACION ELECTRICA DEL APARCAMIENTO DE GINZO... SERVICIOS \n", + "2 SUMINISTRO DE DOS FUENTES DE AGUA PARA EL EDIF... SUMINISTRO \n", + "3 CONTRATO MENOR DE SERVICIOS PARA LA ORGANIZACI... SERVICIOS \n", + "\n", + " N.I.F CONTRATISTA IMPORTE \\\n", + "0 B83579441 GONPERSA TRADE, S.L. 1197.60 \n", + "1 B87683470 PROYECTOS DESARROLLOS Y RESULTADOS S.L. 6612.65 \n", + "2 B90441809 ABALIER EUROPE, SL 930.01 \n", + "3 B84663822 SASSOT SOUND, S.L. 18137.90 \n", + "\n", + " FECHA APROBACION PLAZO FCH.COMUNIC.REG \n", + "0 2019-12-17 0.50 2020-01-02 \n", + "1 2019-12-12 0.93 2020-01-02 \n", + "2 2019-12-27 0.03 2020-01-02 \n", + "3 2019-12-20 1.00 2020-01-02 " ] }, - "execution_count": 456, + "execution_count": 359, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "type(df_minors['ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount'].iloc[2161263])" - ] - }, - { - "cell_type": "code", - "execution_count": 466, - "id": "ce73cafa", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['4997.3']\n" - ] - } - ], - "source": [ - "print(df_minors['ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount'].iloc[1299])" + "df_bloque3.head(4)" ] }, { "cell_type": "code", - "execution_count": 486, - "id": "e93071fd", + "execution_count": null, + "id": "00037696", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "numpy.ndarray" - ] - }, - "execution_count": 486, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "type(df_minors['ContractFolderStatus.TenderResult.WinningParty.PartyName.Name'].iloc[0])" + "df_bloque3 = replace_names_by_codes(df_bloque3, 'TIPO DE CONTRATO')\n", + "df_bloque3['CONTRATISTA'] = df_bloque3['CONTRATISTA'].apply(convert_to_object_array)\n", + "df_bloque3['N.I.F'] = df_bloque3['N.I.F'].apply(convert_to_object_array)\n", + "df_bloque3['IMPORTE'] = df_bloque3['IMPORTE'].apply(convert_to_float_array)\n", + "df_bloque3['FECHA APROBACION'] = df_bloque3['FECHA APROBACION'].apply(convertir_timestamp_a_array)" ] }, { "cell_type": "code", - "execution_count": 482, - "id": "eccbbe28", + "execution_count": 398, + "id": "44742918", "metadata": {}, "outputs": [ { @@ -3131,737 +4105,95 @@ " \n", " \n", " \n", - " id\n", - " link\n", - " summary\n", - " title\n", - " ContractFolderStatus.ContractFolderID\n", - " ContractFolderStatus.LocatedContractingParty.Party.PartyIdentification.ID\n", - " ContractFolderStatus.LocatedContractingParty.Party.PartyIdentification.IDschemeName\n", - " ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name\n", - " ContractFolderStatus.ProcurementProject.Name\n", - " ContractFolderStatus.ProcurementProject.TypeCode\n", - " ContractFolderStatus.ProcurementProject.SubTypeCode\n", - " ContractFolderStatus.ProcurementProject.BudgetAmount.TotalAmount\n", - " ContractFolderStatus.ProcurementProject.BudgetAmount.TaxExclusiveAmount\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.CountrySubentity\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.CountrySubentityCode\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.Country.IdentificationCode\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.Country.Name\n", - " ContractFolderStatus.ProcurementProject.PlannedPeriod.DurationMeasure\n", - " ContractFolderStatus.TenderResult.ResultCode\n", - " ContractFolderStatus.TenderResult.Description\n", - " ContractFolderStatus.TenderResult.AwardDate\n", - " ContractFolderStatus.TenderResult.ReceivedTenderQuantity\n", - " ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.ID\n", - " ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.IDschemeName\n", - " ContractFolderStatus.TenderResult.WinningParty.PartyName.Name\n", - " ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.TaxExclusiveAmount\n", - " ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount\n", - " ContractFolderStatus.TenderingProcess.ProcedureCode\n", - " ContractFolderStatus.ValidNoticeInfo.NoticeTypeCode\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.PublicationMediaName\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.IssueDate\n", - " ContractFolderStatus.ProcurementProject.RequiredCommodityClassification.ItemClassificationCode\n", - " ContractFolderStatus.TenderingProcess.UrgencyCode\n", - " ContractFolderStatus.ProcurementProject.BudgetAmount.EstimatedOverallContractAmount\n", - " ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.EndDate\n", - " ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.EndTime\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.PartyName.Name\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name\n", - " ContractFolderStatus.ProcurementProject.PlannedPeriod.StartDate\n", - " ContractFolderStatus.ProcurementProject.PlannedPeriod.EndDate\n", - " ContractFolderStatus.TenderResult.Contract.ID\n", - " ContractFolderStatus.TenderResult.Contract.IssueDate\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name\n", - " ContractFolderStatus.LegalDocumentReference.ID\n", - " ContractFolderStatus.LegalDocumentReference.Attachment.ExternalReference.URI\n", - " ContractFolderStatus.LegalDocumentReference.Attachment.ExternalReference.DocumentHash\n", - " ContractFolderStatus.TenderResult.StartDate\n", - " ContractFolderStatus.TechnicalDocumentReference.ID\n", - " ContractFolderStatus.TechnicalDocumentReference.Attachment.ExternalReference.URI\n", - " ContractFolderStatus.TechnicalDocumentReference.Attachment.ExternalReference.DocumentHash\n", - " ContractFolderStatus.AdditionalDocumentReference.ID\n", - " ContractFolderStatus.AdditionalDocumentReference.Attachment.ExternalReference.URI\n", - " ContractFolderStatus.AdditionalDocumentReference.Attachment.ExternalReference.DocumentHash\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.CityName\n", - " ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.Description\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.PostalZone\n", - " ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod\n", - " ContractFolderStatus.ProcurementProjectLot.ID\n", - " ContractFolderStatus.ProcurementProjectLot.IDschemeName\n", - " ContractFolderStatus.ProcurementProjectLot.ProcurementProject.Name\n", - " ContractFolderStatus.ProcurementProjectLot.ProcurementProject.BudgetAmount.TotalAmount\n", - " ContractFolderStatus.ProcurementProjectLot.ProcurementProject.BudgetAmount.TaxExclusiveAmount\n", - " ContractFolderStatus.TenderResult.AwardedTenderedProject.ProcurementProjectLotID\n", - " ContractFolderStatus.ProcurementProjectLot.ProcurementProject.RequiredCommodityClassification.ItemClassificationCode\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.DocumentTypeCode\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.Attachment.ExternalReference.URI\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.Attachment.ExternalReference.FileName\n", - " ContractFolderStatus.TenderResult.SMEAwardedIndicator\n", - " ContractFolderStatus.TenderResult.AbnormallyLowTendersIndicator\n", - " ContractFolderStatus.ContractModification.ID\n", - " ContractFolderStatus.ContractModification.ContractModificationDurationMeasure\n", - " ContractFolderStatus.ContractModification.FinalDurationMeasure\n", - " ContractFolderStatus.ContractModification.ContractID\n", - " ContractFolderStatus.ContractModification.ContractModificationLegalMonetaryTotal.TaxExclusiveAmount\n", - " ContractFolderStatus.ContractModification.FinalLegalMonetaryTotal.TaxExclusiveAmount\n", - " ContractFolderStatus.ContractModification.Note\n", - " ContractFolderStatus.LocatedContractingParty.ContractingPartyTypeCode\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.CityName\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.PostalZone\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.AddressLine.Line\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.Country.IdentificationCode\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.Country.Name\n", - " ContractFolderStatus.LocatedContractingParty.Party.Contact.Name\n", - " ContractFolderStatus.LocatedContractingParty.Party.Contact.ElectronicMail\n", - " ContractFolderStatus.LocatedContractingParty.Party.WebsiteURI\n", - " ContractFolderStatus.LocatedContractingParty.Party.Contact.Telephone\n", - " ContractFolderStatus.LocatedContractingParty.Party.Contact.Telefax\n", - " ContractFolderStatus.LocatedContractingParty.ActivityCode\n", - " ContractFolderStatus.LocatedContractingParty.BuyerProfileURIID\n", - " ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.Country.IdentificationCode\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName\n", - " ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.CountrySubentityCode\n", - " ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.CityName\n", - " ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.PostalZone\n", - " ContractFolderStatus.TendererStatus.ProcurementProjectLotID\n", - " ContractFolderStatus.TenderResult.WinningParty.PartyLegalEntity.CompanyTypeCode\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName\n", - " ContractFolderStatus.TenderingTerms.FundingProgramCode\n", - " ContractFolderStatus.TenderingTerms.FundingProgram\n", - " ContractFolderStatus.TenderResult.AwardedOwnerNationalityCode\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.StreetName\n", - " updated\n", - " ContractFolderStatus.ContractFolderStatusCode\n", - " deleted_on\n", + " NºRECON\n", + " NUMERO EXPEDIENTE\n", + " SECCION\n", + " ORG.CONTRATACION\n", + " OBJETO DEL CONTRATO\n", + " TIPO DE CONTRATO\n", + " N.I.F\n", + " CONTRATISTA\n", + " IMPORTE\n", + " FECHA APROBACION\n", + " PLAZO\n", + " FCH.COMUNIC.REG\n", " \n", " \n", " \n", " \n", " 0\n", - " https://contrataciondelestado.es/sindicacion/d...\n", - " https://contrataciondelestado.es/wps/poc?uri=d...\n", - " Id licitación: 000103/2017-1069; Órgano de Con...\n", - " Reforma de elementos de ventilación exterior d...\n", - " 000103/2017-1069\n", - " [L01300275]\n", - " [DIR3]\n", - " Junta de Gobierno del Ayuntamiento de Molina d...\n", - " Reforma de elementos de ventilación exterior d...\n", - " 2.0\n", - " 1.0\n", - " 6171.00\n", - " 5100.0\n", - " Región de Murcia\n", - " ES62\n", - " ES\n", - " España\n", - " 10.0\n", - " [8.0]\n", - " [nan]\n", - " [2017-12-21]\n", - " [2.0]\n", - " [B30437347]\n", - " [NIF]\n", - " [CLIMAYOR S.L. B30437347]\n", - " [3767.0]\n", - " [4558.07]\n", - " 6.0\n", - " [['DOC_CAN_ADJ', 'DOC_CD', 'DOC_CN']]\n", - " [['Perfil del Contratante', 'Perfil del Contra...\n", - " [['2018-01-02', '2017-12-04', '2017-12-04']]\n", - " [nan]\n", + " M202000001\n", + " EMT/2019/10109\n", + " EMPRESA MUNICIPAL DE TRANSPORTES S.A.\n", + " DIRECTOR\n", + " SUMINISTRO UNA BOMBA NEUMATICA PARA EL TALLER ...\n", " 1.0\n", - " NaN\n", - " 2017-12-13\n", - " 13:00:00\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " 000103 2017 1069 Documentacion CONTRATO MENOR.pdf\n", - " https://contrataciondelestado.es/wps/wcm/conne...\n", - " fLISojrV8+cTNfhhhS7WV55miqs=\n", - " [nan]\n", - " 000103 2017 1069 INFORME TECNICO.pdf\n", - " https://contrataciondelestado.es/wps/wcm/conne...\n", - " mZSxNdjyoZwRdnuhLBCSqtPhCog=\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " 2017-12-13 13:00:00+00:00\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " [nan]\n", - " <NA>\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " nan\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [2018-01-02 07:41:12.989000+00:00]\n", - " [RES]\n", - " NaT\n", + " [[B83579441]]\n", + " [[GONPERSA TRADE, S.L.]]\n", + " [1197.6]\n", + " [2019-12-17]\n", + " 0.50\n", + " 2020-01-02\n", " \n", " \n", " 1\n", - " https://contrataciondelestado.es/sindicacion/d...\n", - " https://contrataciondelestado.es/wps/poc?uri=d...\n", - " Id licitación: 29-2017-II; Órgano de Contratac...\n", - " Servicios de calibrado y certificado de dos de...\n", - " 29-2017-II\n", - " [E04803403]\n", - " [DIR3]\n", - " Presidencia de la Confederación Hidrográfica d...\n", - " Servicios de calibrado y certificado de dos de...\n", + " M202000002\n", + " EMT/2019/10101\n", + " EMPRESA MUNICIPAL DE TRANSPORTES S.A.\n", + " DIRECTOR\n", + " ADECUACION ELECTRICA DEL APARCAMIENTO DE GINZO...\n", " 2.0\n", - " 1.0\n", - " 290.40\n", - " 240.0\n", - " Asturias\n", - " ES120\n", - " ES\n", - " España\n", - " 1.0\n", - " [8.0]\n", - " [Oferta más ventajosa.]\n", - " [2017-12-28]\n", - " [1.0]\n", - " [B60564309]\n", - " [NIF]\n", - " [Gometrics, S.L.]\n", - " [240.0]\n", - " [290.4]\n", - " 6.0\n", - " [DOC_CAN_ADJ]\n", - " [Perfil del Contratante]\n", - " [2018-01-02]\n", - " [nan]\n", - " 1.0\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaT\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " [nan]\n", - " <NA>\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " nan\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [2018-01-02 07:48:40.056000+00:00]\n", - " [RES]\n", - " NaT\n", + " [[B87683470]]\n", + " [[PROYECTOS DESARROLLOS Y RESULTADOS S.L.]]\n", + " [6612.6]\n", + " [2019-12-12]\n", + " 0.93\n", + " 2020-01-02\n", " \n", " \n", " 2\n", - " https://contrataciondelestado.es/sindicacion/d...\n", - " https://contrataciondelestado.es/wps/poc?uri=d...\n", - " Id licitación: 013-07-2018; Órgano de Contrata...\n", - " Patrocinio menor proyecto \" Activitats C.I.N.E\"\n", - " 013-07-2018\n", - " [A04013514]\n", - " [DIR3]\n", - " Agencia de Turismo de las Illes Balears\n", - " Patrocinio menor proyecto \" Activitats C.I.N.E\"\n", - " 8.0\n", - " NaN\n", - " 10728.00\n", - " 8866.11\n", - " Illes Balears\n", - " ES53\n", - " ES\n", - " España\n", - " NaN\n", - " [8.0]\n", - " [nan]\n", - " [2017-12-15]\n", - " [1.0]\n", - " [G57694549]\n", - " [NIF]\n", - " [Associaciò Alcem el C.I.N.E.]\n", - " [8866.11]\n", - " [10728.0]\n", - " 6.0\n", - " [DOC_CAN_ADJ]\n", - " [Perfil del Contratante]\n", - " [2018-01-02]\n", - " [92000000.0]\n", + " M202000003\n", + " 103/2019/04514\n", + " DISTRITO DE RETIRO\n", + " COORDINADOR/A DEL DISTRITO DE RETIRO\n", + " SUMINISTRO DE DOS FUENTES DE AGUA PARA EL EDIF...\n", " 1.0\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " 2018-01-01\n", - " 2018-06-01\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaT\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " [nan]\n", - " <NA>\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " nan\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [2018-01-02 07:52:03.763000+00:00]\n", - " [RES]\n", - " NaT\n", + " [[B90441809]]\n", + " [[ABALIER EUROPE, SL]]\n", + " [930.0]\n", + " [2019-12-27]\n", + " 0.03\n", + " 2020-01-02\n", " \n", " \n", " 3\n", - " https://contrataciondelestado.es/sindicacion/d...\n", - " https://contrataciondelestado.es/wps/poc?uri=d...\n", - " Id licitación: CON/2017/51; Órgano de Contrata...\n", - " Redacción EPIA - Legalización antena emisora d...\n", - " CON/2017/51\n", - " [L01330117]\n", - " [DIR3]\n", - " Alcaldía del Ayuntamiento de Cangas del Narcea\n", - " Redacción EPIA - Legalización antena emisora d...\n", + " M202000004\n", + " 101/2019/07924\n", + " DISTRITO DE CENTRO\n", + " COORDINADOR/A DEL DISTRITO CENTRO\n", + " CONTRATO MENOR DE SERVICIOS PARA LA ORGANIZACI...\n", " 2.0\n", - " 27.0\n", - " 2420.00\n", - " 2000.0\n", - " Asturias\n", - " ES120\n", - " ES\n", - " España\n", - " 15.0\n", - " [3.0]\n", - " [nan]\n", - " [2017-12-28]\n", - " [0.0]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " 6.0\n", - " [['DOC_CAN_ADJ', 'DOC_CN']]\n", - " [['Perfil del Contratante', 'Perfil del Contra...\n", - " [['2018-01-02', '2017-12-15']]\n", - " [nan]\n", - " 1.0\n", - " 2000.0\n", - " 2017-12-26\n", - " 14:00:00\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " 2017-12-26 14:00:00+00:00\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " [nan]\n", - " <NA>\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " nan\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [2018-01-02 07:53:43.525000+00:00]\n", - " [RES]\n", - " NaT\n", + " [[B84663822]]\n", + " [[SASSOT SOUND, S.L.]]\n", + " [18137.9]\n", + " [2019-12-20]\n", + " 1.00\n", + " 2020-01-02\n", " \n", " \n", " 4\n", - " https://contrataciondelestado.es/sindicacion/d...\n", - " https://contrataciondelestado.es/wps/poc?uri=d...\n", - " Id licitación: 000047/2017-1069; Órgano de Con...\n", - " Obras de reparación del Centro de Información ...\n", - " 000047/2017-1069\n", - " [L01300275]\n", - " [DIR3]\n", - " Junta de Gobierno del Ayuntamiento de Molina d...\n", - " Obras de reparación del Centro de Información ...\n", - " 3.0\n", - " 4500.0\n", - " 4789.12\n", - " 3957.95\n", - " Murcia\n", - " ES620\n", - " ES\n", - " España\n", - " 21.0\n", - " [8.0]\n", - " [nan]\n", - " [2017-12-22]\n", - " [6.0]\n", - " [B73326019]\n", - " [NIF]\n", - " [DISEÑO Y DECORACIONES J. PEÑALVER S.L. B73326...\n", - " [3262.0]\n", - " [3947.01]\n", - " 6.0\n", - " [['DOC_CAN_ADJ', 'DOC_CD', 'DOC_CN']]\n", - " [['Perfil del Contratante', 'Perfil del Contra...\n", - " [['2018-01-02', '2017-07-03', '2017-07-03']]\n", - " [45000000.0]\n", - " 1.0\n", - " NaN\n", - " 2017-07-14\n", - " 13:00:00\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " 2017-07-19\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " 000047 2017 1069 Documentacion CONTRATO MENOR.pdf\n", - " https://contrataciondelestado.es/wps/wcm/conne...\n", - " TMHaAOCw9krEQDMxbH/0DTFZ49s=\n", - " [nan]\n", - " 000047 2017 1069 INFORME TECNICO.pdf\n", - " https://contrataciondelestado.es/wps/wcm/conne...\n", - " MXH4+cG89UkLjQPP/g8CwjG39L8=\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " 2017-07-14 13:00:00+00:00\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " [nan]\n", - " <NA>\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " [nan]\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [nan]\n", - " nan\n", - " [nan]\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " [2018-01-02 08:14:33.726000+00:00]\n", - " [RES]\n", - " NaT\n", + " M202000005\n", + " 101/2019/07918\n", + " DISTRITO DE CENTRO\n", + " COORDINADOR/A DEL DISTRITO CENTRO\n", + " CONTRATO MENOR DE SERVICIO PARA LA REPARACION ...\n", + " 2.0\n", + " [[A28904548]]\n", + " [[MAINLA, S.A.]]\n", + " [225.3]\n", + " [2019-12-30]\n", + " 0.03\n", + " 2020-01-02\n", " \n", " \n", " ...\n", @@ -3877,2274 +4209,596 @@ " ...\n", " ...\n", " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 2162362\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " 300/2024/00149\n", - " NaN\n", - " NaN\n", - " COORDINADOR DEL DISTRITO DE FUENCARRAL-EL PARDO\n", - " Servicio de organización, montaje, desmontaje,...\n", - " 2.0\n", - " NaN\n", - " NaN\n", - " 16.637,50€\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 3\n", - " B88454962\n", - " NaN\n", - " EVENTOS INFIMA,S.L.\n", - " NaN\n", - " 12.977,25€\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaT\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " SI\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaT\n", " \n", " \n", - " 2162363\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " 300/2024/00162\n", - " NaN\n", - " NaN\n", - " COORDINADOR DEL DISTRITO DE FUENCARRAL-EL PARDO\n", - " Organización y desarrollo de actividades para ...\n", + " 22422\n", + " M201806181\n", + " MDC/2018/00901\n", + " MADRID DESTINO, CULTURA, TURISMO Y NEGOCIO, S.A.\n", + " GERENCIA CENTROCENTRO\n", + " SERVICIO DE COMISARIA PARA LA EXPOSICION EL CA...\n", " 2.0\n", - " NaN\n", - " NaN\n", - " 1.730,30€\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 1\n", - " G81316804\n", - " NaN\n", - " CLUB DEPORTIVO ELEMENTAL CHAMARTIN-VERGARA\n", - " NaN\n", - " 1.430,00€\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaT\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NO\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaT\n", + " [[00401821B]]\n", + " [[VIRGINIA TORRENTE MALDONADO]]\n", + " [6050.0]\n", + " [2018-08-31]\n", + " 5.00\n", + " 2018-12-28\n", " \n", " \n", - " 2162364\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " 300/2024/00240\n", - " NaN\n", - " NaN\n", + " 22423\n", + " M201806182\n", + " 108/2018/07629\n", + " DISTRITO DE FUENCARRAL - EL PARDO\n", " COORDINADOR DEL DISTRITO DE FUENCARRAL-EL PARDO\n", - " Adquisición de consumibles originales de infor...\n", + " SUMINISTRO DE MOBILIARIO Y ENSERES PARA LAS AC...\n", " 1.0\n", - " NaN\n", - " NaN\n", - " 15.730,00€\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 2\n", - " A78557808\n", - " NaN\n", - " DISTRIBUIDORA DE MATERIAL DE OFICINA, S.A.\n", - " NaN\n", - " 12.576,38€\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaT\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " SI\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaT\n", + " [[A58890682]]\n", + " [[DOUBLET IBERICA, S.A.]]\n", + " [4307.4]\n", + " [2018-12-05]\n", + " 0.23\n", + " 2018-12-28\n", " \n", " \n", - " 2162365\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " 511/2024/09397\n", - " NaN\n", - " NaN\n", - " DIRECTOR GENERAL DE PLANIFICACIÓN DE RECURSOS ...\n", - " Actividad formativa AB-14-4435-V-24 Gestión de...\n", - " 2.0\n", - " NaN\n", - " NaN\n", - " 18.148,79€\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 2\n", - " G87623815\n", - " NaN\n", - " Social Dinapp Innovación\n", - " NaN\n", - " 11.858,00€\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaT\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " SI\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaN\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " <NA>\n", - " NaN\n", - " NaN\n", - " NaT\n", + " 22424\n", + " M201806183\n", + " 136/2018/00066\n", + " ÁREA DE GOBIERNO DE SALUD, SEGURIDAD Y EMERGEN...\n", + " DIRECTOR/A GENERAL EMERGENCIAS Y PROTECCION CIVIL\n", + " EL OBJETO DEL CONTRATO ES EL SUMINISTRO DE 110...\n", + " 1.0\n", + " [[A41050113]]\n", + " [[ITURRI, S.A.]]\n", + " [18101.6]\n", + " [2018-12-12]\n", + " 5.00\n", + " 2018-12-28\n", + " \n", + " \n", + " 22425\n", + " M201806184\n", + " 136/2018/00065\n", + " ÁREA DE GOBIERNO DE SALUD, SEGURIDAD Y EMERGEN...\n", + " DIRECTOR/A GENERAL EMERGENCIAS Y PROTECCION CIVIL\n", + " EL OBJETO DEL CONTRATO ES EL SUMINISTRO DE DIV...\n", + " 1.0\n", + " [[B87828273]]\n", + " [[MADRID MIEL MAESTROS APICULTORES DESDE 1944,...\n", + " [3278.2]\n", + " [2018-12-12]\n", + " 2.00\n", + " 2018-12-28\n", + " \n", + " \n", + " 22426\n", + " M201806185\n", + " NCM/2019/00010\n", + " INFORMÁTICA AYUNTAMIENTO DE MADRID\n", + " GERENTE INFORMATICA AYUNTAMIENTO DE MADRID\n", + " SUMINISTRO LICENCIA AIMSUN NEXT 8.3 ADVANCED\n", + " 1.0\n", + " [[B61504775]]\n", + " [[AIMSUN, S.L.]]\n", + " [18144.0]\n", + " [2018-12-19]\n", + " 1.40\n", + " 2018-12-28\n", + " \n", + " \n", + "\n", + "

22427 rows × 12 columns

\n", + "" + ], + "text/plain": [ + " NºRECON NUMERO EXPEDIENTE \\\n", + "0 M202000001 EMT/2019/10109 \n", + "1 M202000002 EMT/2019/10101 \n", + "2 M202000003 103/2019/04514 \n", + "3 M202000004 101/2019/07924 \n", + "4 M202000005 101/2019/07918 \n", + "... ... ... \n", + "22422 M201806181 MDC/2018/00901 \n", + "22423 M201806182 108/2018/07629 \n", + "22424 M201806183 136/2018/00066 \n", + "22425 M201806184 136/2018/00065 \n", + "22426 M201806185 NCM/2019/00010 \n", + "\n", + " SECCION \\\n", + "0 EMPRESA MUNICIPAL DE TRANSPORTES S.A. \n", + "1 EMPRESA MUNICIPAL DE TRANSPORTES S.A. \n", + "2 DISTRITO DE RETIRO \n", + "3 DISTRITO DE CENTRO \n", + "4 DISTRITO DE CENTRO \n", + "... ... \n", + "22422 MADRID DESTINO, CULTURA, TURISMO Y NEGOCIO, S.A. \n", + "22423 DISTRITO DE FUENCARRAL - EL PARDO \n", + "22424 ÁREA DE GOBIERNO DE SALUD, SEGURIDAD Y EMERGEN... \n", + "22425 ÁREA DE GOBIERNO DE SALUD, SEGURIDAD Y EMERGEN... \n", + "22426 INFORMÁTICA AYUNTAMIENTO DE MADRID \n", + "\n", + " ORG.CONTRATACION \\\n", + "0 DIRECTOR \n", + "1 DIRECTOR \n", + "2 COORDINADOR/A DEL DISTRITO DE RETIRO \n", + "3 COORDINADOR/A DEL DISTRITO CENTRO \n", + "4 COORDINADOR/A DEL DISTRITO CENTRO \n", + "... ... \n", + "22422 GERENCIA CENTROCENTRO \n", + "22423 COORDINADOR DEL DISTRITO DE FUENCARRAL-EL PARDO \n", + "22424 DIRECTOR/A GENERAL EMERGENCIAS Y PROTECCION CIVIL \n", + "22425 DIRECTOR/A GENERAL EMERGENCIAS Y PROTECCION CIVIL \n", + "22426 GERENTE INFORMATICA AYUNTAMIENTO DE MADRID \n", + "\n", + " OBJETO DEL CONTRATO TIPO DE CONTRATO \\\n", + "0 SUMINISTRO UNA BOMBA NEUMATICA PARA EL TALLER ... 1.0 \n", + "1 ADECUACION ELECTRICA DEL APARCAMIENTO DE GINZO... 2.0 \n", + "2 SUMINISTRO DE DOS FUENTES DE AGUA PARA EL EDIF... 1.0 \n", + "3 CONTRATO MENOR DE SERVICIOS PARA LA ORGANIZACI... 2.0 \n", + "4 CONTRATO MENOR DE SERVICIO PARA LA REPARACION ... 2.0 \n", + "... ... ... \n", + "22422 SERVICIO DE COMISARIA PARA LA EXPOSICION EL CA... 2.0 \n", + "22423 SUMINISTRO DE MOBILIARIO Y ENSERES PARA LAS AC... 1.0 \n", + "22424 EL OBJETO DEL CONTRATO ES EL SUMINISTRO DE 110... 1.0 \n", + "22425 EL OBJETO DEL CONTRATO ES EL SUMINISTRO DE DIV... 1.0 \n", + "22426 SUMINISTRO LICENCIA AIMSUN NEXT 8.3 ADVANCED 1.0 \n", + "\n", + " N.I.F CONTRATISTA \\\n", + "0 [[B83579441]] [[GONPERSA TRADE, S.L.]] \n", + "1 [[B87683470]] [[PROYECTOS DESARROLLOS Y RESULTADOS S.L.]] \n", + "2 [[B90441809]] [[ABALIER EUROPE, SL]] \n", + "3 [[B84663822]] [[SASSOT SOUND, S.L.]] \n", + "4 [[A28904548]] [[MAINLA, S.A.]] \n", + "... ... ... \n", + "22422 [[00401821B]] [[VIRGINIA TORRENTE MALDONADO]] \n", + "22423 [[A58890682]] [[DOUBLET IBERICA, S.A.]] \n", + "22424 [[A41050113]] [[ITURRI, S.A.]] \n", + "22425 [[B87828273]] [[MADRID MIEL MAESTROS APICULTORES DESDE 1944,... \n", + "22426 [[B61504775]] [[AIMSUN, S.L.]] \n", + "\n", + " IMPORTE FECHA APROBACION PLAZO FCH.COMUNIC.REG \n", + "0 [1197.6] [2019-12-17] 0.50 2020-01-02 \n", + "1 [6612.6] [2019-12-12] 0.93 2020-01-02 \n", + "2 [930.0] [2019-12-27] 0.03 2020-01-02 \n", + "3 [18137.9] [2019-12-20] 1.00 2020-01-02 \n", + "4 [225.3] [2019-12-30] 0.03 2020-01-02 \n", + "... ... ... ... ... \n", + "22422 [6050.0] [2018-08-31] 5.00 2018-12-28 \n", + "22423 [4307.4] [2018-12-05] 0.23 2018-12-28 \n", + "22424 [18101.6] [2018-12-12] 5.00 2018-12-28 \n", + "22425 [3278.2] [2018-12-12] 2.00 2018-12-28 \n", + "22426 [18144.0] [2018-12-19] 1.40 2018-12-28 \n", + "\n", + "[22427 rows x 12 columns]" + ] + }, + "execution_count": 398, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_bloque3" + ] + }, + { + "cell_type": "code", + "execution_count": 400, + "id": "03aca461", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.float64" + ] + }, + "execution_count": 400, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(df_minors['ContractFolderStatus.ProcurementProject.PlannedPeriod.DurationMeasure'].iloc[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 395, + "id": "b7359454", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.float64" + ] + }, + "execution_count": 395, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(df_bloque3['PLAZO'].iloc[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 383, + "id": "b521b856", + "metadata": {}, + "outputs": [], + "source": [ + "# Crear una función para obtener un ejemplo aleatorio de cada columna\n", + "def ejemplos_aleatorios(df, mapeo):\n", + " ejemplos = {}\n", + " for col_izq, col_der in mapeo.items():\n", + " if col_izq in df.columns:\n", + " ejemplo_izq = df[col_izq].sample(1).iloc[0]\n", + " else:\n", + " ejemplo_izq = 'Columna no encontrada en df_mad'\n", + " if col_der in df_minors.columns:\n", + " ejemplo_der = df_minors[col_der].sample(1).iloc[0]\n", + " else:\n", + " ejemplo_der = 'Columna no encontrada en df_minors'\n", + " ejemplos[col_izq] = {'Ejemplo df_mad': ejemplo_izq, 'Ejemplo df_minors': ejemplo_der}\n", + " \n", + " return ejemplos" + ] + }, + { + "cell_type": "code", + "execution_count": 379, + "id": "1cf9a0f7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
NºRECONNUMERO EXPEDIENTESECCIONORG.CONTRATACIONOBJETO DEL CONTRATOTIPO DE CONTRATON.I.FCONTRATISTAIMPORTEFECHA APROBACIONPLAZOFCH.COMUNIC.REG
2162366<NA><NA><NA>NaNSP24-00053NaNNaNDIRECTOR/A DE INFRAESTRUCTURASCONTRATO MENOR del servicio de asistencia técn...2.0NaNNaN8.470,00€<NA><NA><NA><NA>NaNNaNNaNNaN2B86038213NaNMargarida Acústica, S.LNaN7.381,00€NaNNaNNaNNaNNaNNaNNaN<NA><NA><NA><NA><NA><NA><NA>NaNNaN<NA><NA><NA><NA><NA><NA>NaN<NA><NA><NA>NaNNaNNaN<NA><NA><NA><NA>NaTNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNSINaNNaNNaNNaNNaNNaNNaN<NA>NaN<NA><NA><NA><NA><NA><NA><NA><NA>NaNNaNNaN<NA>NaN<NA><NA><NA><NA><NA><NA>NaNNaNNaNNaNNaN<NA><NA><NA><NA>NaNNaNNaN<NA><NA><NA><NA>NaNNaNNaT0M202000001EMT/2019/10109EMPRESA MUNICIPAL DE TRANSPORTES S.A.DIRECTORSUMINISTRO UNA BOMBA NEUMATICA PARA EL TALLER ...SUMINISTROB83579441GONPERSA TRADE, S.L.1197.602019-12-170.502020-01-02
1M202000002EMT/2019/10101EMPRESA MUNICIPAL DE TRANSPORTES S.A.DIRECTORADECUACION ELECTRICA DEL APARCAMIENTO DE GINZO...SERVICIOSB87683470PROYECTOS DESARROLLOS Y RESULTADOS S.L.6612.652019-12-120.932020-01-02
2M202000003103/2019/04514DISTRITO DE RETIROCOORDINADOR/A DEL DISTRITO DE RETIROSUMINISTRO DE DOS FUENTES DE AGUA PARA EL EDIF...SUMINISTROB90441809ABALIER EUROPE, SL930.012019-12-270.032020-01-02
3M202000004101/2019/07924DISTRITO DE CENTROCOORDINADOR/A DEL DISTRITO CENTROCONTRATO MENOR DE SERVICIOS PARA LA ORGANIZACI...SERVICIOSB84663822SASSOT SOUND, S.L.18137.902019-12-201.002020-01-02
4M202000005101/2019/07918DISTRITO DE CENTROCOORDINADOR/A DEL DISTRITO CENTROCONTRATO MENOR DE SERVICIO PARA LA REPARACION ...SERVICIOSA28904548MAINLA, S.A.225.312019-12-300.032020-01-02
.......................................
6326M202006352191/2020/00483ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTEDIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M...CONTRATO MENOR DE SUSCRIPCION DE LA BASE DE DA...OTROSA58417346WOLTERS KLUWER ESPAÑA, S.A.55660.002020-12-0912.002020-12-30
6327M202006353191/2020/00484ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTEDIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M...CONTRATO MENOR DE SUSCRIPCION A LA PLATAFORMA ...SUMINISTROA58417346WOLTERS KLUWER ESPAÑA, S.A.5284.242020-12-0912.002020-12-30
6328M202006354191/2020/00485ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTEDIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M...CONTRATO MENOR DE SUSCRIPCION DE LABASE DE DAT...SUMINISTROA58417346WOLTERS KLUWER ESPAÑA, S.A.3903.462020-12-0912.002020-12-30
6329M202006355191/2020/00487ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTEDIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M...CONTRATO MENOR DE SUSCRIPCION A LAS PUBLICACIO...SUMINISTROA81962201EDITORIAL ARANZADI, S.A.3884.402020-12-0912.002020-12-30
6330M202006356191/2020/00488ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTEDIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M...SUSCRIPCION A LA PUBLICACION DE LA REVISTA DE ...SUMINISTROB80125255REVISTA DE DERECHO URBANISTICO Y MEDIO AMBIENTE295.362020-12-0912.002020-12-30
\n", - "

2162367 rows × 119 columns

\n", + "

6331 rows × 12 columns

\n", "
" ], "text/plain": [ - " id \\\n", - "0 https://contrataciondelestado.es/sindicacion/d... \n", - "1 https://contrataciondelestado.es/sindicacion/d... \n", - "2 https://contrataciondelestado.es/sindicacion/d... \n", - "3 https://contrataciondelestado.es/sindicacion/d... \n", - "4 https://contrataciondelestado.es/sindicacion/d... \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " link \\\n", - "0 https://contrataciondelestado.es/wps/poc?uri=d... \n", - "1 https://contrataciondelestado.es/wps/poc?uri=d... \n", - "2 https://contrataciondelestado.es/wps/poc?uri=d... \n", - "3 https://contrataciondelestado.es/wps/poc?uri=d... \n", - "4 https://contrataciondelestado.es/wps/poc?uri=d... \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " summary \\\n", - "0 Id licitación: 000103/2017-1069; Órgano de Con... \n", - "1 Id licitación: 29-2017-II; Órgano de Contratac... \n", - "2 Id licitación: 013-07-2018; Órgano de Contrata... \n", - "3 Id licitación: CON/2017/51; Órgano de Contrata... \n", - "4 Id licitación: 000047/2017-1069; Órgano de Con... \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " title \\\n", - "0 Reforma de elementos de ventilación exterior d... \n", - "1 Servicios de calibrado y certificado de dos de... \n", - "2 Patrocinio menor proyecto \" Activitats C.I.N.E\" \n", - "3 Redacción EPIA - Legalización antena emisora d... \n", - "4 Obras de reparación del Centro de Información ... \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractFolderID \\\n", - "0 000103/2017-1069 \n", - "1 29-2017-II \n", - "2 013-07-2018 \n", - "3 CON/2017/51 \n", - "4 000047/2017-1069 \n", - "... ... \n", - "2162362 300/2024/00149 \n", - "2162363 300/2024/00162 \n", - "2162364 300/2024/00240 \n", - "2162365 511/2024/09397 \n", - "2162366 SP24-00053 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.PartyIdentification.ID \\\n", - "0 [L01300275] \n", - "1 [E04803403] \n", - "2 [A04013514] \n", - "3 [L01330117] \n", - "4 [L01300275] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.PartyIdentification.IDschemeName \\\n", - "0 [DIR3] \n", - "1 [DIR3] \n", - "2 [DIR3] \n", - "3 [DIR3] \n", - "4 [DIR3] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.PartyName.Name \\\n", - "0 Junta de Gobierno del Ayuntamiento de Molina d... \n", - "1 Presidencia de la Confederación Hidrográfica d... \n", - "2 Agencia de Turismo de las Illes Balears \n", - "3 Alcaldía del Ayuntamiento de Cangas del Narcea \n", - "4 Junta de Gobierno del Ayuntamiento de Molina d... \n", - "... ... \n", - "2162362 COORDINADOR DEL DISTRITO DE FUENCARRAL-EL PARDO \n", - "2162363 COORDINADOR DEL DISTRITO DE FUENCARRAL-EL PARDO \n", - "2162364 COORDINADOR DEL DISTRITO DE FUENCARRAL-EL PARDO \n", - "2162365 DIRECTOR GENERAL DE PLANIFICACIÓN DE RECURSOS ... \n", - "2162366 DIRECTOR/A DE INFRAESTRUCTURAS \n", - "\n", - " ContractFolderStatus.ProcurementProject.Name \\\n", - "0 Reforma de elementos de ventilación exterior d... \n", - "1 Servicios de calibrado y certificado de dos de... \n", - "2 Patrocinio menor proyecto \" Activitats C.I.N.E\" \n", - "3 Redacción EPIA - Legalización antena emisora d... \n", - "4 Obras de reparación del Centro de Información ... \n", - "... ... \n", - "2162362 Servicio de organización, montaje, desmontaje,... \n", - "2162363 Organización y desarrollo de actividades para ... \n", - "2162364 Adquisición de consumibles originales de infor... \n", - "2162365 Actividad formativa AB-14-4435-V-24 Gestión de... \n", - "2162366 CONTRATO MENOR del servicio de asistencia técn... \n", - "\n", - " ContractFolderStatus.ProcurementProject.TypeCode \\\n", - "0 2.0 \n", - "1 2.0 \n", - "2 8.0 \n", - "3 2.0 \n", - "4 3.0 \n", - "... ... \n", - "2162362 2.0 \n", - "2162363 2.0 \n", - "2162364 1.0 \n", - "2162365 2.0 \n", - "2162366 2.0 \n", - "\n", - " ContractFolderStatus.ProcurementProject.SubTypeCode \\\n", - "0 1.0 \n", - "1 1.0 \n", - "2 NaN \n", - "3 27.0 \n", - "4 4500.0 \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProject.BudgetAmount.TotalAmount \\\n", - "0 6171.00 \n", - "1 290.40 \n", - "2 10728.00 \n", - "3 2420.00 \n", - "4 4789.12 \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProject.BudgetAmount.TaxExclusiveAmount \\\n", - "0 5100.0 \n", - "1 240.0 \n", - "2 8866.11 \n", - "3 2000.0 \n", - "4 3957.95 \n", - "... ... \n", - "2162362 16.637,50€ \n", - "2162363 1.730,30€ \n", - "2162364 15.730,00€ \n", - "2162365 18.148,79€ \n", - "2162366 8.470,00€ \n", - "\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.CountrySubentity \\\n", - "0 Región de Murcia \n", - "1 Asturias \n", - "2 Illes Balears \n", - "3 Asturias \n", - "4 Murcia \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.CountrySubentityCode \\\n", - "0 ES62 \n", - "1 ES120 \n", - "2 ES53 \n", - "3 ES120 \n", - "4 ES620 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.Country.IdentificationCode \\\n", - "0 ES \n", - "1 ES \n", - "2 ES \n", - "3 ES \n", - "4 ES \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.Country.Name \\\n", - "0 España \n", - "1 España \n", - "2 España \n", - "3 España \n", - "4 España \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.ProcurementProject.PlannedPeriod.DurationMeasure \\\n", - "0 10.0 \n", - "1 1.0 \n", - "2 NaN \n", - "3 15.0 \n", - "4 21.0 \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.ResultCode \\\n", - "0 [8.0] \n", - "1 [8.0] \n", - "2 [8.0] \n", - "3 [3.0] \n", - "4 [8.0] \n", + " NºRECON NUMERO EXPEDIENTE \\\n", + "0 M202000001 EMT/2019/10109 \n", + "1 M202000002 EMT/2019/10101 \n", + "2 M202000003 103/2019/04514 \n", + "3 M202000004 101/2019/07924 \n", + "4 M202000005 101/2019/07918 \n", + "... ... ... \n", + "6326 M202006352 191/2020/00483 \n", + "6327 M202006353 191/2020/00484 \n", + "6328 M202006354 191/2020/00485 \n", + "6329 M202006355 191/2020/00487 \n", + "6330 M202006356 191/2020/00488 \n", + "\n", + " SECCION \\\n", + "0 EMPRESA MUNICIPAL DE TRANSPORTES S.A. \n", + "1 EMPRESA MUNICIPAL DE TRANSPORTES S.A. \n", + "2 DISTRITO DE RETIRO \n", + "3 DISTRITO DE CENTRO \n", + "4 DISTRITO DE CENTRO \n", "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.Description \\\n", - "0 [nan] \n", - "1 [Oferta más ventajosa.] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.AwardDate \\\n", - "0 [2017-12-21] \n", - "1 [2017-12-28] \n", - "2 [2017-12-15] \n", - "3 [2017-12-28] \n", - "4 [2017-12-22] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.ReceivedTenderQuantity \\\n", - "0 [2.0] \n", - "1 [1.0] \n", - "2 [1.0] \n", - "3 [0.0] \n", - "4 [6.0] \n", - "... ... \n", - "2162362 3 \n", - "2162363 1 \n", - "2162364 2 \n", - "2162365 2 \n", - "2162366 2 \n", - "\n", - " ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.ID \\\n", - "0 [B30437347] \n", - "1 [B60564309] \n", - "2 [G57694549] \n", - "3 [nan] \n", - "4 [B73326019] \n", - "... ... \n", - "2162362 B88454962 \n", - "2162363 G81316804 \n", - "2162364 A78557808 \n", - "2162365 G87623815 \n", - "2162366 B86038213 \n", - "\n", - " ContractFolderStatus.TenderResult.WinningParty.PartyIdentification.IDschemeName \\\n", - "0 [NIF] \n", - "1 [NIF] \n", - "2 [NIF] \n", - "3 [nan] \n", - "4 [NIF] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.WinningParty.PartyName.Name \\\n", - "0 [CLIMAYOR S.L. B30437347] \n", - "1 [Gometrics, S.L.] \n", - "2 [Associaciò Alcem el C.I.N.E.] \n", - "3 [nan] \n", - "4 [DISEÑO Y DECORACIONES J. PEÑALVER S.L. B73326... \n", - "... ... \n", - "2162362 EVENTOS INFIMA,S.L. \n", - "2162363 CLUB DEPORTIVO ELEMENTAL CHAMARTIN-VERGARA \n", - "2162364 DISTRIBUIDORA DE MATERIAL DE OFICINA, S.A. \n", - "2162365 Social Dinapp Innovación \n", - "2162366 Margarida Acústica, S.L \n", - "\n", - " ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.TaxExclusiveAmount \\\n", - "0 [3767.0] \n", - "1 [240.0] \n", - "2 [8866.11] \n", - "3 [nan] \n", - "4 [3262.0] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.AwardedTenderedProject.LegalMonetaryTotal.PayableAmount \\\n", - "0 [4558.07] \n", - "1 [290.4] \n", - "2 [10728.0] \n", - "3 [nan] \n", - "4 [3947.01] \n", - "... ... \n", - "2162362 12.977,25€ \n", - "2162363 1.430,00€ \n", - "2162364 12.576,38€ \n", - "2162365 11.858,00€ \n", - "2162366 7.381,00€ \n", - "\n", - " ContractFolderStatus.TenderingProcess.ProcedureCode \\\n", - "0 6.0 \n", - "1 6.0 \n", - "2 6.0 \n", - "3 6.0 \n", - "4 6.0 \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ValidNoticeInfo.NoticeTypeCode \\\n", - "0 [['DOC_CAN_ADJ', 'DOC_CD', 'DOC_CN']] \n", - "1 [DOC_CAN_ADJ] \n", - "2 [DOC_CAN_ADJ] \n", - "3 [['DOC_CAN_ADJ', 'DOC_CN']] \n", - "4 [['DOC_CAN_ADJ', 'DOC_CD', 'DOC_CN']] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.PublicationMediaName \\\n", - "0 [['Perfil del Contratante', 'Perfil del Contra... \n", - "1 [Perfil del Contratante] \n", - "2 [Perfil del Contratante] \n", - "3 [['Perfil del Contratante', 'Perfil del Contra... \n", - "4 [['Perfil del Contratante', 'Perfil del Contra... \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.IssueDate \\\n", - "0 [['2018-01-02', '2017-12-04', '2017-12-04']] \n", - "1 [2018-01-02] \n", - "2 [2018-01-02] \n", - "3 [['2018-01-02', '2017-12-15']] \n", - "4 [['2018-01-02', '2017-07-03', '2017-07-03']] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProject.RequiredCommodityClassification.ItemClassificationCode \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [92000000.0] \n", - "3 [nan] \n", - "4 [45000000.0] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderingProcess.UrgencyCode \\\n", - "0 1.0 \n", - "1 1.0 \n", - "2 1.0 \n", - "3 1.0 \n", - "4 1.0 \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProject.BudgetAmount.EstimatedOverallContractAmount \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 2000.0 \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.EndDate \\\n", - "0 2017-12-13 \n", - "1 \n", - "2 \n", - "3 2017-12-26 \n", - "4 2017-07-14 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.EndTime \\\n", - "0 13:00:00 \n", - "1 \n", - "2 \n", - "3 14:00:00 \n", - "4 13:00:00 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.PartyName.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.ProcurementProject.PlannedPeriod.StartDate \\\n", - "0 \n", - "1 \n", - "2 2018-01-01 \n", - "3 \n", - "4 2017-07-19 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.ProcurementProject.PlannedPeriod.EndDate \\\n", - "0 \n", - "1 \n", - "2 2018-06-01 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TenderResult.Contract.ID \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.Contract.IssueDate \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LegalDocumentReference.ID \\\n", - "0 000103 2017 1069 Documentacion CONTRATO MENOR.pdf \n", - "1 \n", - "2 \n", - "3 \n", - "4 000047 2017 1069 Documentacion CONTRATO MENOR.pdf \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LegalDocumentReference.Attachment.ExternalReference.URI \\\n", - "0 https://contrataciondelestado.es/wps/wcm/conne... \n", - "1 \n", - "2 \n", - "3 \n", - "4 https://contrataciondelestado.es/wps/wcm/conne... \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LegalDocumentReference.Attachment.ExternalReference.DocumentHash \\\n", - "0 fLISojrV8+cTNfhhhS7WV55miqs= \n", - "1 \n", - "2 \n", - "3 \n", - "4 TMHaAOCw9krEQDMxbH/0DTFZ49s= \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TenderResult.StartDate \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TechnicalDocumentReference.ID \\\n", - "0 000103 2017 1069 INFORME TECNICO.pdf \n", - "1 \n", - "2 \n", - "3 \n", - "4 000047 2017 1069 INFORME TECNICO.pdf \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TechnicalDocumentReference.Attachment.ExternalReference.URI \\\n", - "0 https://contrataciondelestado.es/wps/wcm/conne... \n", - "1 \n", - "2 \n", - "3 \n", - "4 https://contrataciondelestado.es/wps/wcm/conne... \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TechnicalDocumentReference.Attachment.ExternalReference.DocumentHash \\\n", - "0 mZSxNdjyoZwRdnuhLBCSqtPhCog= \n", - "1 \n", - "2 \n", - "3 \n", - "4 MXH4+cG89UkLjQPP/g8CwjG39L8= \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.AdditionalDocumentReference.ID \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.AdditionalDocumentReference.Attachment.ExternalReference.URI \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.AdditionalDocumentReference.Attachment.ExternalReference.DocumentHash \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.CityName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod.Description \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.PostalZone \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TenderingProcess.TenderSubmissionDeadlinePeriod \\\n", - "0 2017-12-13 13:00:00+00:00 \n", - "1 NaT \n", - "2 NaT \n", - "3 2017-12-26 14:00:00+00:00 \n", - "4 2017-07-14 13:00:00+00:00 \n", - "... ... \n", - "2162362 NaT \n", - "2162363 NaT \n", - "2162364 NaT \n", - "2162365 NaT \n", - "2162366 NaT \n", - "\n", - " ContractFolderStatus.ProcurementProjectLot.ID \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProjectLot.IDschemeName \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProjectLot.ProcurementProject.Name \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProjectLot.ProcurementProject.BudgetAmount.TotalAmount \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProjectLot.ProcurementProject.BudgetAmount.TaxExclusiveAmount \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.AwardedTenderedProject.ProcurementProjectLotID \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ProcurementProjectLot.ProcurementProject.RequiredCommodityClassification.ItemClassificationCode \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.DocumentTypeCode \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.Attachment.ExternalReference.URI \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ValidNoticeInfo.AdditionalPublicationStatus.AdditionalPublicationDocumentReference.Attachment.ExternalReference.FileName \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.SMEAwardedIndicator \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 SI \n", - "2162363 NO \n", - "2162364 SI \n", - "2162365 SI \n", - "2162366 SI \n", - "\n", - " ContractFolderStatus.TenderResult.AbnormallyLowTendersIndicator \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractModification.ID \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractModification.ContractModificationDurationMeasure \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractModification.FinalDurationMeasure \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractModification.ContractID \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractModification.ContractModificationLegalMonetaryTotal.TaxExclusiveAmount \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractModification.FinalLegalMonetaryTotal.TaxExclusiveAmount \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractModification.Note \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ContractingPartyTypeCode \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.CityName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.PostalZone \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.AddressLine.Line \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.Country.IdentificationCode \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.PostalAddress.Country.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.Contact.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.Contact.ElectronicMail \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.WebsiteURI \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.Contact.Telephone \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.Party.Contact.Telefax \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ActivityCode \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.BuyerProfileURIID \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.Country.IdentificationCode \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.CountrySubentityCode \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.CityName \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.WinningParty.PhysicalLocation.Address.PostalZone \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TendererStatus.ProcurementProjectLotID \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.WinningParty.PartyLegalEntity.CompanyTypeCode \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.TenderingTerms.FundingProgramCode \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderingTerms.FundingProgram \\\n", - "0 nan \n", - "1 nan \n", - "2 nan \n", - "3 nan \n", - "4 nan \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.TenderResult.AwardedOwnerNationalityCode \\\n", - "0 [nan] \n", - "1 [nan] \n", - "2 [nan] \n", - "3 [nan] \n", - "4 [nan] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.ID \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyIdentification.IDschemeName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.LocatedContractingParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.ParentLocatedParty.PartyName.Name \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " ContractFolderStatus.ProcurementProject.RealizedLocation.Address.StreetName \\\n", - "0 \n", - "1 \n", - "2 \n", - "3 \n", - "4 \n", - "... ... \n", - "2162362 \n", - "2162363 \n", - "2162364 \n", - "2162365 \n", - "2162366 \n", - "\n", - " updated \\\n", - "0 [2018-01-02 07:41:12.989000+00:00] \n", - "1 [2018-01-02 07:48:40.056000+00:00] \n", - "2 [2018-01-02 07:52:03.763000+00:00] \n", - "3 [2018-01-02 07:53:43.525000+00:00] \n", - "4 [2018-01-02 08:14:33.726000+00:00] \n", - "... ... \n", - "2162362 NaN \n", - "2162363 NaN \n", - "2162364 NaN \n", - "2162365 NaN \n", - "2162366 NaN \n", - "\n", - " ContractFolderStatus.ContractFolderStatusCode deleted_on \n", - "0 [RES] NaT \n", - "1 [RES] NaT \n", - "2 [RES] NaT \n", - "3 [RES] NaT \n", - "4 [RES] NaT \n", - "... ... ... \n", - "2162362 NaN NaT \n", - "2162363 NaN NaT \n", - "2162364 NaN NaT \n", - "2162365 NaN NaT \n", - "2162366 NaN NaT \n", + "6326 ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTE \n", + "6327 ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTE \n", + "6328 ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTE \n", + "6329 ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTE \n", + "6330 ÁREA DE GOBIERNO DE CULTURA, TURISMO Y DEPORTE \n", + "\n", + " ORG.CONTRATACION \\\n", + "0 DIRECTOR \n", + "1 DIRECTOR \n", + "2 COORDINADOR/A DEL DISTRITO DE RETIRO \n", + "3 COORDINADOR/A DEL DISTRITO CENTRO \n", + "4 COORDINADOR/A DEL DISTRITO CENTRO \n", + "... ... \n", + "6326 DIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M... \n", + "6327 DIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M... \n", + "6328 DIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M... \n", + "6329 DIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M... \n", + "6330 DIRECTOR/A GENERAL DE BIBLIOTECAS,ARCHIVOS Y M... \n", "\n", - "[2162367 rows x 119 columns]" + " OBJETO DEL CONTRATO TIPO DE CONTRATO \\\n", + "0 SUMINISTRO UNA BOMBA NEUMATICA PARA EL TALLER ... SUMINISTRO \n", + "1 ADECUACION ELECTRICA DEL APARCAMIENTO DE GINZO... SERVICIOS \n", + "2 SUMINISTRO DE DOS FUENTES DE AGUA PARA EL EDIF... SUMINISTRO \n", + "3 CONTRATO MENOR DE SERVICIOS PARA LA ORGANIZACI... SERVICIOS \n", + "4 CONTRATO MENOR DE SERVICIO PARA LA REPARACION ... SERVICIOS \n", + "... ... ... \n", + "6326 CONTRATO MENOR DE SUSCRIPCION DE LA BASE DE DA... OTROS \n", + "6327 CONTRATO MENOR DE SUSCRIPCION A LA PLATAFORMA ... SUMINISTRO \n", + "6328 CONTRATO MENOR DE SUSCRIPCION DE LABASE DE DAT... SUMINISTRO \n", + "6329 CONTRATO MENOR DE SUSCRIPCION A LAS PUBLICACIO... SUMINISTRO \n", + "6330 SUSCRIPCION A LA PUBLICACION DE LA REVISTA DE ... SUMINISTRO \n", + "\n", + " N.I.F CONTRATISTA IMPORTE \\\n", + "0 B83579441 GONPERSA TRADE, S.L. 1197.60 \n", + "1 B87683470 PROYECTOS DESARROLLOS Y RESULTADOS S.L. 6612.65 \n", + "2 B90441809 ABALIER EUROPE, SL 930.01 \n", + "3 B84663822 SASSOT SOUND, S.L. 18137.90 \n", + "4 A28904548 MAINLA, S.A. 225.31 \n", + "... ... ... ... \n", + "6326 A58417346 WOLTERS KLUWER ESPAÑA, S.A. 55660.00 \n", + "6327 A58417346 WOLTERS KLUWER ESPAÑA, S.A. 5284.24 \n", + "6328 A58417346 WOLTERS KLUWER ESPAÑA, S.A. 3903.46 \n", + "6329 A81962201 EDITORIAL ARANZADI, S.A. 3884.40 \n", + "6330 B80125255 REVISTA DE DERECHO URBANISTICO Y MEDIO AMBIENTE 295.36 \n", + "\n", + " FECHA APROBACION PLAZO FCH.COMUNIC.REG \n", + "0 2019-12-17 0.50 2020-01-02 \n", + "1 2019-12-12 0.93 2020-01-02 \n", + "2 2019-12-27 0.03 2020-01-02 \n", + "3 2019-12-20 1.00 2020-01-02 \n", + "4 2019-12-30 0.03 2020-01-02 \n", + "... ... ... ... \n", + "6326 2020-12-09 12.00 2020-12-30 \n", + "6327 2020-12-09 12.00 2020-12-30 \n", + "6328 2020-12-09 12.00 2020-12-30 \n", + "6329 2020-12-09 12.00 2020-12-30 \n", + "6330 2020-12-09 12.00 2020-12-30 \n", + "\n", + "[6331 rows x 12 columns]" + ] + }, + "execution_count": 379, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_mad_20" + ] + }, + { + "cell_type": "code", + "execution_count": 384, + "id": "232bbd1d", + "metadata": {}, + "outputs": [], + "source": [ + "# Usar la función con tu mapeo\n", + "ejemplos = ejemplos_aleatorios(df_mad_20, mapeo_20_19_18)" + ] + }, + { + "cell_type": "code", + "execution_count": 385, + "id": "9570c023", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'NUMERO EXPEDIENTE': {'Ejemplo df_mad': '180/2019/02043',\n", + " 'Ejemplo df_minors': '6433/2019'},\n", + " 'ORG.CONTRATACION': {'Ejemplo df_mad': 'DIRECTOR/A GENERAL DE EMERGENCIAS Y PROTECCION CIVIL',\n", + " 'Ejemplo df_minors': 'Jefatura de Intendencia de Asuntos Económicos Este'},\n", + " 'OBJETO DEL CONTRATO': {'Ejemplo df_mad': 'GASTO MENOR DEL SERVICIO DE ELABORACION DE VIDEO TUTORIAL DE ANIMACION EN STOP MOTION PARA EL FESTIVAL DE ANIMACION ANIMARIO 2020 QUE TENDRA LUGAR EN MATADERO MADRID DEL 15 DE OCTUBRE AL 25 DE OCTUBRE _x000D_\\n',\n", + " 'Ejemplo df_minors': 'Instituto Murciano de Acción Social (IMAS) - Dirección Gerencial'},\n", + " 'TIPO DE CONTRATO': {'Ejemplo df_mad': 'SERVICIOS', 'Ejemplo df_minors': 1.0},\n", + " 'CONTRATISTA': {'Ejemplo df_mad': 'LAURA FLORIS',\n", + " 'Ejemplo df_minors': array(['QUALITAS, OBRAS, SERVICIOS E INGENIERIA S.L.'], dtype=object)},\n", + " 'RAZON SOCIAL ADJUDICATARIO': {'Ejemplo df_mad': 'Columna no encontrada en df_mad',\n", + " 'Ejemplo df_minors': array(['SANHER PINTURA Y CONTRUCCION, S.L.'], dtype=object)},\n", + " 'N.I.F': {'Ejemplo df_mad': '00677684N',\n", + " 'Ejemplo df_minors': array(['A96157011'], dtype=object)},\n", + " 'IMPORTE': {'Ejemplo df_mad': 14520.0,\n", + " 'Ejemplo df_minors': array(['14300.55'], dtype=object)},\n", + " 'F_APROBACIÓN': {'Ejemplo df_mad': 'Columna no encontrada en df_mad',\n", + " 'Ejemplo df_minors': array(['2020-12-15'], dtype=object)},\n", + " 'PLAZO': {'Ejemplo df_mad': 0.2, 'Ejemplo df_minors': 1.0},\n", + " 'SECCION': {'Ejemplo df_mad': 'Columna no encontrada en df_mad',\n", + " 'Ejemplo df_minors': 'Columna no encontrada en df_minors'}}" ] }, - "execution_count": 482, + "execution_count": 385, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_minors" + "ejemplos" ] } ],