import datetimeimport numpy as npimport pandas as pd
df = pd.read_excel ("深圳市宾馆酒店分类信息.xlsx", encoding = "utf8", sep="\t")df

binguan = df["宾馆酒店名称"]binguanjiudian = binguan.to_list()for i in binguanjiudian: print(i)
深圳美境假日精品客栈深圳大鹏较场尾壹月客栈深圳小梅沙奢华海景别墅深圳瓜villa海景度假别墅爱情公寓(深圳古城店)深圳随心民宿深圳桔钓沙莱华度假酒店深圳舒静阁别墅深圳曦城别墅深圳南澳世纪海景别墅深圳东部华侨城瀑布酒店深圳西涌(西冲)三人行客栈深圳西冲米兰花开客栈(原舍下客栈)深圳尚绿居民宿深圳五洲宾馆深圳寒之落民宿(原海语民宿)...
import requestsdef geolocation(address): url="https://restapi.amap.com/v3/geocode/geo?parameters" params={ "key":"14dc3151f80e56462d23f40d60cfa779", "address":address, "city":"深圳" } r=requests.get(url,params=params) return r.json()
import time import pprintfrom random import random区域=list()经纬度=list()for i in binguanjiudian: #time.sleep(3+8*random()) geocode=geolocation(i) #pprint.pprint(geocode["geocodes"]) if geocode["geocodes"] == []: 经纬度.append("请求经纬度失败") 区域.append("转换为区域失败") elif geocode["geocodes"][0]["district"] ==[]: 区域.append("转换为区域失败") elif geocode["geocodes"][0]["location"] ==[]: print("经纬度为空") 经纬度.append("请求经纬度失败") #pprint.pprint(geocode)# if geocode[0]==" ":# print("无法转为经纬度") else: #print(geocode["geocodes"][0]["location"]) 经纬度.append(geocode["geocodes"][0]["location"]) 区域.append(geocode["geocodes"][0]["district"])# #print(geocode)print(区域)经纬度
['114.509457,22.588540', '114.122263,22.559907', '113.929882,22.540629', '113.980500,22.587347', '114.021658,22.624935', ...]'盐田区', '福田区', '南山区', '龙岗区', '福田区', '龙岗区', '罗湖区', '福田区'
loc = 经纬度经纬度 = loc[0].str.split(',',expand=True)经度 = 经纬度[0]维度 = 经纬度[1]df["酒店所属区域"] = 区域df["经度"] = 经度df["维度"] = 维度df

# 深圳市酒店分布情况地图概览import plotly.graph_objects as gomapbox_access_token = 'pk.eyJ1IjoiYmxhY2tzaGVlcHdhbGwwMzA1IiwiYSI6ImNrMHo5ZnQxYjBjbG8zbm84b3hrb25vb24ifQ.k8toDjJDsPcjdYFTSVgTsv'fig = go.Figudfre(go.Scattermapbox( lon = df[lon], lat = df[lat], mode='markers', hovertext = df[['宾馆酒店名称','酒店地址']], marker=go.scattermapbox.Marker( size=7 ), text=df[['宾馆酒店名称','酒店地址']], ))fig.update_layout(mapbox_style="open-street-map")fig.update_layout( title = '深圳市酒店分布散点图', hovermode='closest', mapbox=dict( accesstoken=mapbox_access_token, bearing=0, center=go.layout.mapbox.Center( lat=22.483767, lon=114.549601 ), pitch=0, zoom=8 ))fig.show()

df = pd.read_excel ("不同区域酒店数量.xlsx", encoding = "utf8", sep="\t")df

# 深圳各区域酒店数量分布地图# 深圳各区域有多少酒店清晰可见import plotly.graph_objects as goimport pandas as pdmymap = go.Densitymapbox(lat=df['lat'],lon=df['lon'],z=df['数量'],radius=40)fig = go.Figure(mymap)fig.update_layout(mapbox_style="open-street-map")fig.show()

# 深圳市酒店价格卫星散点气泡地图# 把酒店价格展示在地图上import plotly.express as pxmapbox_access_token = 'pk.eyJ1IjoiYmxhY2tzaGVlcHdhbGwwMzA1IiwiYSI6ImNrMHo5ZnQxYjBjbG8zbm84b3hrb25vb24ifQ.k8toDjJDsPcjdYFTSVgTsv'df = dffig = px.scatter_mapbox(df, lat="lat", lon="lon",color="入住价格", size="入住价格", color_continuous_scale=px.colors.cyclical.IceFire, size_max=15, zoom=10)fig.update_layout(mapbox_style="stamen-terrain")fig.show()

酒店地图.html
区域酒店数量热力地图.html
深圳市酒店卫星散点气泡图.html