<jupyter_start><jupyter_text>Módulo datos_gov - LEILAEste libro de Jupyter contiene ejemplos con explicaciones de cómo utilizar el módulo que conecta a un usuario con el Portal de Datos Abiertos de Colombia  Importar la clase DatosGov del módulo datos_gov<jupyter_code>from leila.datos_gov import DatosGov<jupyter_output><empty_output><jupyter_text>Se importa la tabla de inventario de datos.gov.co. Esta tabla contiene todas las publicaciones del Portal (conjuntos de datos, enlaces externos, mapas, gráficos, etc.).<jupyter_code>inventario = DatosGov().tabla_inventario()<jupyter_output><empty_output><jupyter_text>Las columnas de la tabla de inventario son las siguientes:"**numero_api**": número API del conjunto de datos. Este es un carácter único de cada conjunto de datos del Portal que se usa como insumo para abrirlo desde código."**nombre**": nombre de la publicación"**descripcion**": descripción de la publicación"**dueno**": dueño de la publicación. "**base_publica**": indica con un "si" si la información del conjunto de datos es público y con un "no" de lo contrario"**tipo**": indica el tipo de la publicación, que puede ser uno de los siguientes: "conjunto de datos", "enlace externo", "mapa", "grafico", "vista filtrada", "archivo o documento", "historia", "visualizacion", "lente de datos", "formulario", "calendario"."**categoria**": tema general del que trata la información publicada"**terminos_clave**": términos clave relacionados con la publicación"**url**": enlace web de la publicación en el Portal de Datos Abiertos"**fecha_creacion**": fecha de creación de la publicación"**fecha_actualizacion**": última fecha de actualización de la publicación"**filas**": número de filas del conjunto de datos, si aplica"**columnas**": número de columnas del conjunto de datos, si aplica"**correo_contacto**": correo de contacto de la entidad dueña de los datos"**licencia**": nombre de la licencia los datos"**entidad**": nombre de la entidad dueña de los datos"**entidad_url**": enlace web de la entidad dueña de los datos"**entidad_sector**": sector de la entidad"**entidad_departamento**": departamento de la entidad"**entidad_orden**": especifica si publicación es de orden territorial, nacional, departamental o internacional"**entidad_dependencia**": dependencia de la entidad dueña de los datos"**entidad_municipio**": municipio donde opera la entidad"**actualizacion_frecuencia**": frecuencia de actualización de los datos. Puede ser anual, semestral, mensual, trimestral, trianual, diaria, quinquenal, semanal, entre otros. También puede no aplicar"**idioma**": idioma en el que se encuentra la información"**cobertura**": alcance de la información. Puede ser nacional, departamental, municipal, centro poblado o internacional  Filtrar la tabla de inventario Es posible buscar información de interés dentro de la tabla de inventario. La búsqueda se hace a partir de términos o texto que puede ser buscado en las columnas de formato texto de la tabla de inventario, por un rango de fechas o por el número filas o columnas.  Ejemplo: búsqueda por términos clavePara hacer la búsqueda por términos clave, se construye un diccionario de Python que contenga como llaves los nombres de las columnas de texto de la tabla de inventario sobre las cuales se desea hacer el filtro. Los valores de cada llave es una lista que contiene uno o más términos clave. Este diccionario se ingresa al método "tabla_inventario" de DatosGov dentro del parámetro "filtro".Los términos que se ingresan al diccionario no tienen que tener tildes o mayúsculas que se encuentran en la columna original de la tabla de inventario. Por ejemplo, los resultados serán los mismos si se buscan las palabras "Economía", "economía", "economia" o "ECONOMÍA".Abajo se encuentra un ejemplo donde se filtra la tabla de inventario por las columnas "nombre" y "tipo". Dentro de la columna "nombre" se busca si contiene los términos "economia" o "ambiente" y si la columna "tipo" contiene el término "conjunto de datos". Es decir, se están buscando conjuntos de datos de temas de economía o ambiente.<jupyter_code># Se crea el diccionario con el filtro deseado
filtro = {
    "nombre": ["economia", "ambiente"],
    "tipo": ["conjunto de datos"]
}

# Se abre la tabla de inventario con el filtro deseado
inventario = DatosGov().tabla_inventario(filtro=filtro)
# Se imprime la tabla de inventario con el filtro aplicado en la celda anterior
inventario<jupyter_output><empty_output><jupyter_text>Ejemplo: búsqueda por rango de filas y columnasPara hacer el filtro de la tabla de inventario por el tamaño de un conjunto de datos, se tiene que incluir el nombre de las columnas "filas" y "columnas" en el diccionario. Los valores de estas llaves son listas con dos elementos cada una: el primer elemento es el valor mínimo de filas o columnas y el segundo el valor máximo. A continuación se muestra un ejemplo de filtro, donde se seleccionan los conjuntos de datos con mínimo 50 filas y máximo 60 y con mínimo 8 columnas y máximo 10<jupyter_code># Se crea el diccionario con el filtro deseado
filtro = {
    "filas": [50, 60],
    "columnas": [8, 10]
}

# Se abre la tabla de inventario con el filtro deseado
inventario = DatosGov().tabla_inventario(filtro=filtro)
# Imprimir las columnas del código API, nombre, descripción, filas y columnas de la tabla de inventario filtrada
inventario[["numero_api", "nombre", "descripcion", "filas", "columnas"]]<jupyter_output><empty_output><jupyter_text>Ejemplo: búsqueda por fecha La tabla de inventario también puede filtrase por fecha. Para hacerlo, se ingresa el diccionario de filtro con una de las columnas de fecha y se especifican las fechas de inicio y de fin deseadas. El siguiente ejemplo muestra cómo obtener la tabla de inventario para publicaciones creadas entre el 1 de enero de 2020 y el 1 de febrero de 2020.<jupyter_code># Se crea el diccionario con el filtro deseado
filtro = {
    "fecha_creacion": ["2020-01-01", "2020-02-01"],
}

# Se abre la tabla de inventario con el filtro deseado
inventario = DatosGov().tabla_inventario(filtro=filtro)
# Se muestra la tabla filtrada por fecha
inventario<jupyter_output><empty_output><jupyter_text>Abrir un conjunto de datos del Portal de Datos Abiertos Para abrir un conjunto de datos.gov.co es necesario tener el código API de ese conjunto e ingresarlo al método "cargar_base" de la clase DatosGov. Con esta función se crea un objeto que contiene el dataframe y el diccionario de metadatos del conjunto, los cuales se pueden obtener con los métodos "to_dataframe" y "metadatos"Abajo está el código para cargar el conjunto de datos de "Pueblos indígenas a nivel Nacional 2020", el cual se encuentra en el último filtro de la tabla de inventario.   Cargar conjunto de datos con número API<jupyter_code># Se define la variable "numero_api", que contiene el número API del conjunto "Pueblos indígenas a nivel Nacional 2020"
numero_api = "etwv-wj8f"
# Se descarga la información del conjunto de datos en la variable "data" con el método "cargar_base". 
# Al parámetro "api_id" se asigna el número API y "limite_filas" especifica que únicamente se descargan 200 filas del conjunto
data = DatosGov().cargar_base(api_id = numero_api, limite_filas=200)<jupyter_output><empty_output><jupyter_text>Obtener dataframe del conjunto de datos<jupyter_code># Se obtiene el dataframe del conjunto de datos con el método "to_dataframe"
datos = data.to_dataframe()
# Se visualiza una versión reducida del dataframe
datos<jupyter_output><empty_output><jupyter_text>Obtener diccionario de metadatos del conjunto de datos<jupyter_code># Los metadatos se obtienen con el método "metadatos" y se asignan a la variable "meta"
meta = data.metadatos()
# Se visualiza el diccionario de metadatos
meta<jupyter_output><empty_output>
StarcoderdataJupyterStructuredCleanDedup