600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python抓取北京所有社区医院经纬度

python抓取北京所有社区医院经纬度

时间:2021-11-05 00:16:21

相关推荐

python抓取北京所有社区医院经纬度

python抓取北京所有社区医院经纬度

第一步

先从北京政府的官网上获取了有北京所有社区医院信息的excel表格,然后利用pandas库将name列提取出来并转换为list对象

from pandas import DataFramedf = pd.DataFrame(pd.read_excel('C:/Users/15643/Desktop/hospital_data.xls'))data_set = np.array(df['name'])data_set_lists = data_set.tolist()

第二步

利用百度地图开放平台来获取每个医院的经纬度

from urllib import requestimport reimport urllib.parse as urpdef __get_location1__(name):my_ak = ' ' # 需要自己填写自己的AKqurey = urp.quote(name)try:url = 'http://api./place/v2/search?query='+qurey+'&tag='+'&region='+urp.quote('北京')+'&output=json&ak='+my_ak#print(url)req = request.urlopen(url)res = req.read().decode()lat = pd.to_numeric(re.findall('"lat":(.*)',res)[0].split(',')[0])lng = pd.to_numeric(re.findall('"lng":(.*)',res)[0])return lat,lng #经度和纬度except:return 0,0

第三步

把之前提取到的各个医院的名字放在该函数里,获取到每一个医院的经纬度信息,并把提取到的数据保存在一个新的excel文件中

data_list=[]for data_set_list in data_set_lists:lat,lng=__get_location1__(data_set_list)data_list.append([lat,lng])df = pd.DataFrame(data_list,columns=['lat','lng'])df.to_excel('C:/Users/15643/Desktop/1.xls',sheet_name='test')print(df)

利用Arcgis进行可视化

1.将储存有经纬度的sheet表导入到arcgis中

2.选中该工作表单击右键,选择显示XY数据,x字段选择lng,y字段选择lat

3.再次选中该工作表单击右键,选择数据,导出数据后生成一个图层

以下为结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。