Heim >Backend-Entwicklung >Python-Tutorial >Verwenden Sie Python, um die Verteilung von Hochschulen und Universitäten im ganzen Land anzuzeigen
Um die Verteilung von Hochschulen und Universitäten darzustellen, müssen Sie zunächst die Standortdaten von Hochschulen und Universitäten ermitteln im ganzen Land. Die Daten für diesen Artikel stammen vom Palm College Entrance Examination Network (https://www.gaokao.cn/school/search).
Zum Zeitpunkt des Schreibens dieses Artikels im Juni 2022 Insgesamt wurden Informationen zu 2822 Hochschulen und Universitäten eingeholt. Nach der Überprüfung der Daten sind die gesamten Daten bis auf einige Nullwerte sehr vollständig und haben keinen Einfluss auf die Verwendung. Die Daten umfassen insgesamt 44 Felder. In diesem Artikel werden nur einige Felder verwendet. Sie müssen nicht verarbeitet werden und können bei Bedarf abgerufen werden.
Einführung in Datenerfassungsmethoden (Grundkenntnisse im Crawler) :
1. Registrieren Sie sich und melden Sie sich auf der Website für die mobile Hochschulaufnahmeprüfung an. Wählen Sie auf der Seite alle Schulen aus.
2 Drücken Sie die Taste F12, klicken Sie auf Netzwerk > Fetch/XHR und klicken Sie dann ein paar Mal. 🎜🎜# Die Schaltflächen und auf der Seite zeigen die aufgerufene API und andere Informationen auf der XHR-Seite an.
3. Kopieren Sie die API jedes Mal, wenn Sie die Seite umblättern, um sie zu vergleichen, und finden Sie die Parameter, die sich ändern, wenn Sie Umblättern Es gibt zwei: Seite und Signsafe, Seite ist die Anzahl der Seiten, auf die derzeit zugegriffen wird, und Signsafe ist ein MD5-Wert, der nicht dekodiert werden kann, aber die vorherigen Werte können gespeichert und später zufällig verwendet werden. Mit diesen Informationen können durch ständige Änderung der Anzahl der besuchten Seiten und des Signsafe-Werts alle Schuldaten abgerufen werden.
Der Parameterwert numFound in Response ist die Gesamtzahl der Schulen, die auf jeder Seite angezeigt werden, um die Gesamtzahl der Seiten zu erhalten Klicken Sie direkt auf die Seite #🎜🎜 #Sehen Sie sich die Gesamtzahl der Seiten an und ermitteln Sie so die Anzahl der Besuche.
5. Schleifen Sie mit den oben genannten Informationen die URLs aller Seiten ab und verwenden Sie Anfragen zum Senden von Anfragen die Daten aller Hochschulen und Universitäten, und verwenden Sie dann Pandas, um die Daten in Excel zu schreiben.
Zusätzliche Erklärung:
Die neueste Ankündigung von People's Daily Online: Die Anzahl der An normalen Hochschulen und Universitäten im ganzen Land gibt es 2.759 Schulen, das sind 63 andere als die 2.822 Schulen, die in diesem Artikel vom Palm College Entrance Examination Network ermittelt wurden. Der Unterschied ist hauptsächlich auf die unterschiedlichen statistischen Methoden einiger Zweigstellen zurückzuführen. Was dieser Artikel zeigt, ist die Verteilung, und dieser Unterschied hat kaum Auswirkungen. #? 🎜#
Das Palm College Entrance Examination Network ist eine Website zum Ausfüllen von Freiwilligendiensten für die College-Aufnahmeprüfung. Die erhaltenen Daten umfassen zwar 44 Felder, enthalten jedoch keine Breiten- und Längengrad der Schule. Um den Standort von Hochschulen und Universitäten besser auf der Karte anzuzeigen, ist es notwendig, anhand der Adresse der Schule den entsprechenden Längen- und Breitengrad zu ermitteln.
Die zu verwendenden Schritte sind: 1. Registrieren Sie sich und melden Sie sich bei einem Baidu-Konto an (z. B. Konten für Netzwerkfestplatten, Wenku usw.). 2. Melden Sie sich bei der Baidu Map Open Platform an, klicken Sie, um einzugeben, klicken Sie dann auf in und dann auf , um eine Anwendung zu erstellen. Passen Sie den Anwendungsnamen an, geben Sie nach Aufforderung und Bedarf weitere Informationen ein und unterziehen Sie sich einer Authentifizierung mit echtem Namen, um ein einzelner Entwickler zu werden. 3. Nachdem die Anwendung erstellt wurde, können Sie diesen AK-Wert verwenden, um die API von Baidu aufzurufen.
#🎜 🎜#import requests
def baidu_api(addr):
url = "http://api.map.baidu.com/geocoding/v3/?"
params = {
"address": addr,
"output": "json",
"ak": "复制你创建的应用AK到此"
}
req = requests.get(url, params)
res = req.json()
if len(res["result"]) > 0:
loc = res["result"]["location"]
return loc
else:
print("获取{}经纬度失败".format(addr))
return {'lng': '', 'lat': ''}
4. Nachdem Sie die Baidu Map API erfolgreich aufgerufen haben, lesen Sie die Standorte aller Universitäten, rufen Sie die obige Funktion nacheinander auf, ermitteln Sie den Längen- und Breitengrad aller Universitäten und schreiben Sie sie in Excel um.
import pandas as pd import numpy as np def get_lng_lat(): df = pd.read_excel('school.xlsx') lng_lat = [] for row_index, row_data in df.iterrows(): addr = row_data['address'] if addr is np.nan: addr = row_data['city_name'] + row_data['county_name'] # print(addr) loc = baidu_api(addr.split(',')[0]) lng_lat.append(loc) df['经纬度'] = lng_lat df['经度'] = df['经纬度'].apply(lambda x: x['lng']) df['纬度'] = df['经纬度'].apply(lambda x: x['lat']) df.to_excel('school_lng_lat.xlsx')
Das endgültige Datenergebnis ist wie folgt:
Einzelne Entwickler müssen bei der Verwendung der offenen Baidu Map-Plattform aufpassen. Es gibt ein tägliches Kontingentlimit, daher sollten Sie dies beim Debuggen des Codes nicht tun Verwenden Sie zuerst alle Daten, führen Sie zuerst die Demo durch, andernfalls müssen Sie einen Tag warten oder den Betrag kaufen.
Die Daten sind fertig, wir zeigen sie auf der Karte an.
Dieser Artikel verwendet Baidus Open-Source-Datenvisualisierungstool Echarts. Echarts stellt die Pyecharts-Bibliothek für die Python-Sprache bereit, die sehr benutzerfreundlich ist.
Installationsbefehl:
pip install pyecharts
1. Markieren Sie den Standort von Hochschulen und Universitäten
from pyecharts.charts import Geo from pyecharts import options as opts from pyecharts.globals import GeoType import pandas as pd def multi_location_mark(): """批量标注点""" geo = Geo(init_opts=opts.InitOpts(bg_color='black', width='1600px', height='900px')) df = pd.read_excel('school_lng_lat.xlsx') for row_index, row_data in df.iterrows(): geo.add_coordinate(row_data['name'], row_data['经度'], row_data['纬度']) data_pair = [(name, 2) for name in df['name']] geo.add_schema( maptype='china', is_roam=True, itemstyle_opts=opts.ItemStyleOpts(color='#323c48', border_color='#408080') ).add( '', data_pair=data_pair, type_=GeoType.SCATTER, symbol='pin', symbol_size=16, color='#CC3300' ).set_series_opts( label_opts=opts.LabelOpts(is_show=False) ).set_global_opts( title_opts=opts.TitleOpts(title='全国高校位置标注图', pos_left='650', pos_top='20', title_textstyle_opts=opts.TextStyleOpts(color='white', font_size=16)) ).render('high_school_mark.html')
Den Kennzeichnungsergebnissen zufolge werden hauptsächlich Hochschulen und Universitäten verteilt an der Küste, Zentrale und östliche Gebiete, insbesondere im Westen, gibt es relativ wenige Höhengebiete. 2. Zeichnen Sie eine Heatmap der Verteilung von Hochschulen und Universitäten , Guangzhou und die Becken des Jangtse und des Gelben Flusses sind der einzige Ort, an dem es im Westen mehr Orte gibt.
3. Zeichnen Sie eine Verteilungsdichtekarte nach Provinz östliche Teile des Landes, insbesondere in den zentralen und östlichen Teilen des Landes. Mehrere Provinzen in der Nähe von Peking und Shanghai.
4. Die Verteilung von 211 und 985 Hochschulen und Universitäten
Filtern Sie die Daten von 211 und 985 Hochschulen und Universitäten heraus und zeichnen Sie sie erneut. (Der Code muss nicht wiederholt eingefügt werden. Fügen Sie einfach eine Zeile Filtercode hinzu.)
Das Obige ist der gesamte Inhalt dieses Artikels.
Das obige ist der detaillierte Inhalt vonVerwenden Sie Python, um die Verteilung von Hochschulen und Universitäten im ganzen Land anzuzeigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!