<jupyter_start><jupyter_text>Práctica de Formatos de datos: CSV y JSON  Ejercicio 1[5 puntos]Considerar los archivos __Terrazas.csv__ y __Locales.csv__ que contiene un censo de locales y actividades del Ayuntamiento de Madrid, clasificados según su tipo de acceso (puerta de calle o agrupado), situación (abierto, cerrado...) e indicación de la actividad económica ejercida y de las terrazas de hostelería y restauración que aparecen registradas en dicho censo. Observar que la información puede contener alguna inconsistencia.Se pide realizar funciones en Python que permitan realizar las siguientes acciones:* Usando los dos archivos indicados, se pide crear un nuevo archivo csv denominados __NoTerrazas.csv__ el cual contenga la información de los locales que no son terrazas. Es decir, contendrá la misma información que el archivo __Locales.csv__ pero sin la información de locales que son Terrazas.* Usando el archivo __Locales.csv__ se pide crear una nuevo archivo csv denominada __Agrupadas.csv__ el cual debe contener una línea por cada barrio conteniendo el número de locales en los que el nombre del vial del edificio en que se encuentran es diferente del nombre del vial de acceso al local. Por ejemplo el local con id 10000401 se encuentra en la Plaza de Isabel II pero el acceso al mismo se realiza desde la Calle Arenal. La información en el archivo debe aparecer en el siguiente orden:  Código Barrio, Nombre Barrio, Número de empresas cumpliendo la condición  * Usando el archivo __Terrazas.csv__ crea un nuevo archivo cvs denominado TopRepeticiones.cvs. Considera el número de veces que se repite el nombre de una terraza (campo rótulo). Se pide crear un archivo csv que contenga los 20 nombres que más se repiten. La información en el archivo debe aparecer en orden descendente con los siguientes campos de información:  Nombre terraza, Número de repeticiones Para leer los archivos usa un código como el siguiente:<jupyter_code>import csv
csvarchivo = open('Locales.csv',encoding="utf8",errors='ignore')
entrada = csv.reader(csvarchivo, delimiter=";")<jupyter_output><empty_output><jupyter_text>Ejercicio 2[5 puntos]Considerar el archivo __Agenda.json__ que contiene información de actividades de carácter gratuito, para público infantil y adulto, desarrolladas por las siguientes instituciones de titularidad municipal: la red de Bibliotecas Públicas, la Biblioteca Histórica, la Biblioteca Musical Víctor Espinós, la Hemeroteca y la Imprenta. Se presentan las actividades de los próximos 60 dias. Se pide realizar funciones en Python que permitan realizar las siguientes acciones:* El archivo contiene un campo denominado "audience" que indica el público al que va dirigido. A veces aparece y otras veces no aparece dicho campo. Se quiere procesar el archivo para obtener como resultado dos archivos de texto:el archivo __Niños.txt__ que contendrá la información de los eventos que es exclusivamente para niños y el archivo __Familias.txt__ que contendrá la información de los eventos que está dirigida a niños y familias. En los archivos debe aparecer una línea por cada evento cumpliendo las condiciones indicadas, y mostrando la información siguiente:     Título del evento(campo title), inicio(campo "dtstart"), finalizacion(campo "dtend"), url(campo link)      * Se desea conocer los eventos más cercanos a un punto que viene especificado por su longitud y latitud. De manera que se quiere crear una función que tomando como entrada una longitud, una latitud y un número real que representa una distancia en kilometros, devuelva como resultado los eventos que se encuentran a una distancia menor o igual a la distancia dada como parámetro. El resultado se mostrará por la pantalla mostrando una línea por cada evento. De cada evento se mostrará:  Título del evento(campo title), inicio(campo "dtstart"), finalizacion(campo "dtend"), url(campo link)  Para calcular la distancia entre dos puntos dadas sus coordenadas se utilizará la siguiente función en Python:<jupyter_code>import math

def haversine(lat1, lon1, lat2, lon2):
    rad=math.pi/180
    dlat=lat2-lat1
    dlon=lon2-lon1
    R=6372.795477598
    a=(math.sin(rad*dlat/2))**2 + math.cos(rad*lat1)*math.cos(rad*lat2)*(math.sin(rad*dlon/2))**2
    distancia=2*R*math.asin(math.sqrt(a))
    return distancia<jupyter_output><empty_output><jupyter_text>Para leer los archivos usa un código como el siguiente:<jupyter_code>import json
leer = json.loads(open('Agenda.json',encoding="utf8").read())<jupyter_output><empty_output>
StarcoderdataJupyterStructuredCleanDedup