Aviso importante antes de sumergirnos en el código; asumimos que el desarrollo de esos distritos se puede identificar por el tamaño de la familia. Por supuesto, esto no es cien por ciento cierto, sin embargo, para este caso hacemos esta suposición.
Por favor, no se quede atascado en los significados teóricos, el propósito de esta publicación de blog es extraer datos con éxito y realizar análisis de datos sobre ellos. No se trata de probar algo de verdad.
2. Extraer datos
Extraigamos datos de la plataforma de datos abiertos del municipio de Estambul (ibb) con su API. Puede encontrar varios conjuntos de datos abiertos del municipio de Estambul.
Vaya al enlace de los datos a continuación y haga clic en el botón ‘API de datos’.
Cuando hacemos clic en el botón API de datos, se abre esta ventana, copiaremos el enlace en el rectángulo rojo a continuación y lo pegaremos en nuestro código.
Después de eso, eliminaremos ‘$ top = 5 &’ para extraer todos los datos, no solo los primeros 5. Puede ver el código a continuación para extraer datos del sitio web y cambiarlo al formato de marco de datos usando pandas.
url = ‘https://data.ibb.gov.tr/datastore/odata3.0/25077460-ddfb-45b6-b32c-4615f0ad2d57?$format=json' #URL of family size according to districts
def pulldataToDataframe(url):
query = urllib.request.urlopen(url) # API connection data = json.loads(query.read().decode()) # Change to json type data = data.get(“value”) # Only getting data value return pd.DataFrame(data) # Change to dataframe df = df.drop(columns=”_id”) # Removal of id column
df = pulldataToDataframe(url)
print(df.columns)
Extrajimos los datos y los movimos al marco de datos. Veamos los 5 datos principales.
df.head() #Dataframe 1st column: Districts, 2nd column: family size according to districts
Estambul tiene 2 partes; Europeos y asiáticos. Usaremos Kadikoy para el centro de la parte asiática y Besiktas para la parte europea. Separamos los distritos para la parte asiática (kadikoy_list) y la parte europea (besiktas_list)
kadikoy_list = [‘Kadıköy’, ‘Kartal’, ‘Şile’, ‘Üsküdar’, ‘Pendik’, ‘Ümraniye’, ‘Maltepe’, ‘Sultanbeyli’, ‘Tuzla’, ‘Ataşehir’, ‘Çekmeköy’, ‘Sancaktepe’, ‘Beykoz’]
besiktas_list = [‘Beşiktaş’, ‘Bakırköy’, ‘Beyoğlu’, ‘Çatalca’, ‘Eyüp’, ‘Fatih’, ‘Gaziosmanpaşa’, ‘Sarıyer’, ‘Silivri’, ‘Şişli’, ‘Zeytinburnu’, ‘Büyükçekmece’, ‘Kağıthane’, ‘Küçükçekmece’, ‘Bayrampaşa’, ‘Avcılar’, ‘Bağcılar’, ‘Arnuvutköy’, ‘Başakşehir’, ‘Beylikdüzü’, ‘Esenyurt’, ‘Sultangazi’, ‘Esenler’, ‘Güngören’, ‘Bahçelievler’]
kadikoy_dist = [] besiktas_dist = []
3. API de GOOGLE
Bien, ahora veamos la parte de la API de Google. Hay muchas API disponibles para su uso en Google Cloud Platform. Puedes consultarlos aquí: https://cloud.google.com/
Tienes que crear tu cuenta y solicitar una clave API. Está bien explicado aquí; https://developers.google.com/maps/documentation/javascript/get-api-key
He descargado las API a continuación. Sin embargo, como puede ver, solo uso la API de matriz de distancia y la API de uso del servicio. Le recomiendo que descargue también las API de JavaScript de geocodificación, geolocalización, lugares, direcciones y mapas. Si desea trabajar con datos de GoogleMaps.
Ahora veamos el código de cómo usamos la API. En los comentarios del código a continuación, creo que está bien explicado.
import requests, json
api_key =’QsatasdjıgwedSDFJW-A1lkjasdbUQ’ #You need to put your api key here # url variableEn estadística y matemáticas, una "variable" es un símbolo que representa un valor que puede cambiar o variar. Existen diferentes tipos de variables, como las cualitativas, que describen características no numéricas, y las cuantitativas, que representan cantidades numéricas. Las variables son fundamentales en experimentos y estudios, ya que permiten analizar relaciones y patrones entre diferentes elementos, facilitando la comprensión de fenómenos complejos.... store url url = ‘https://maps.googleapis.com/maps/api/distancematrix/json?'
#For every district in Asian part, we find its distance between #(kadikoy) and append our list 'kadikoy_dist'. for dest in kadikoy_list: source = ‘kadiköy’ r = requests.get(url + ‘origins=’ + source + ‘&destinations=’ + dest + ‘&key=’ + api_key) kadikoy_dist.append(r.json()[‘rows’][0][‘elements’][0][‘distance’][‘value’])
#For every district in european part, we find its distance between #(besiktas) and append our list 'besiktas_dist'. for dest in besiktas_list: source = ‘besiktas’ r = requests.get(url + ‘origins=’ + source + ‘&destinations=’ + dest + ‘&key=’ + api_key) besiktas_dist.append(r.json()[‘rows’][0][‘elements’][0][‘distance’][‘value’])
Como puede ver, hemos extraído datos de distritos, tamaño medio de la familia con la API de datos ibb, y hemos generado una nueva función con la API de matriz de distancia de la API de Google y la hemos nombrado como columna Distancias.
Posts Relacionados:
- Métricas de distancia | Diferentes métricas de distancia en el aprendizaje automático
- API de PNL | API de PNL de Google para analizar y producir mejor contenido
- Utilice Google Colab para modelos de aprendizaje profundo y aprendizaje automático
- ¡5 herramientas geniales de web scraping para recopilar datos para su próximo proyecto!