python爬取都江堰市人口热力图的代码
时间: 2023-10-06 20:07:52 浏览: 219
以下是使用 Python 爬取都江堰市人口热力图的代码:
```python
import requests
import json
import pandas as pd
import folium
# 请求 API 接口获取数据
url = 'http://data.stats.gov.cn/easyquery.htm'
params = {
'm': 'QueryData',
'dbcode': 'fsnd',
'rowcode': 'zb',
'colcode': 'sj',
'wds': '[]',
'dfwds': '[{"wdcode":"reg","valuecode":"510181"}]',
'k1': '1606896034494'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
}
response = requests.get(url, params=params, headers=headers)
data = json.loads(response.text)
# 解析返回的数据
df = pd.DataFrame(data['returndata']['datanodes'])
df['data'] = df.apply(lambda x: x['data']['str'], axis=1)
df['zb'] = df.apply(lambda x: x['code'].split('.')[0], axis=1)
df['sj'] = df.apply(lambda x: x['code'].split('.')[1], axis=1)
df.drop('code', axis=1, inplace=True)
df = pd.pivot_table(df, index='zb', columns='sj', values='data')
# 用 Folium 库绘制热力图
m = folium.Map(location=[30.988, 103.649], zoom_start=12)
folium.plugins.HeatMap(df, name='Population', control=False).add_to(m)
folium.LayerControl().add_to(m)
m.save('population_heatmap.html')
```
在这个代码中,我们使用 requests 库向 API 接口发送请求,获取到都江堰市人口数据,然后使用 pandas 库解析数据,最后使用 folium 库绘制热力图,并保存为 HTML 文件。
阅读全文