POI是英文"Point of Interest"的缩写,中文翻译为"兴趣点"或"兴趣地点"。在地理信息系统(GIS)和位置服务领域中,POI通常指代一些在地图上显示的特定地点或地理位置,例如商店、餐厅、公园、景点等。
与之前分享的 数据集 | 2亿条中国大陆工商企业注册信息 ,可以结合起来使用。
声明
科研用途;需要的请加微信 372335839, 备注「姓名-学校-专业-poi」
一、数据集概况
370个地市, 截止2022年12月份的POI数据集。压缩文件夹体积800M,解压3.9G。
解压后, 在「全国POI数据(2022年12月)」文件夹内新建一个 「代码.ipynb」,运行如下代码查看文件夹内的文件列表
import glob
# 查询
files = glob.glob('*/*.csv')
files
Run
[
'北京POI数据/北京市POI数据.csv',
'浙江省POI数据/杭州市POI数据.csv',
'吉林省POI数据/长春市POI数据.csv',
'陕西省POI数据/西安市POI数据.csv',
'江苏省POI数据/南京市POI数据.csv',
'山东省POI数据/青岛市POI数据.csv',
'湖南省POI数据/长沙市POI数据.csv',
'辽宁省POI数据/大连市POI数据.csv',
...
'河北省POI数据/衡水市POI数据.csv',
]
地级市csv文件个数
len(files)
Run
370
二、读取POI数据
读取北京、天津、青岛、上海、广州、杭州、长沙这几个城市poi数据(大家可以根据自己的兴趣更改城市)
import pandas as pd
bj_df = pd.read_csv('北京POI数据/北京市POI数据.csv', encoding='utf-8')
qd_df = pd.read_csv('山东省POI数据/青岛市POI数据.csv', encoding='utf-8')
tj_df = pd.read_csv('天津市POI数据/天津市POI数据.csv', encoding='utf-8')
sh_df = pd.read_csv('上海POI数据/上海市POI数据.csv', encoding='utf-8')
gz_df = pd.read_csv('广东省POI数据/广州市POI数据.csv', encoding='utf-8')
hz_df = pd.read_csv('浙江省POI数据/杭州市POI数据.csv', encoding='utf-8')
cs_df = pd.read_csv('湖南省POI数据/长沙市POI数据.csv', encoding='utf-8')
hz_df.head(10)
#该文件poi记录数
print('北京poi记录数: ', len(bj_df))
print('天津poi记录数: ', len(tj_df))
print('青岛poi记录数: ', len(qd_df))
print()
print('上海poi记录数: ', len(sh_df))
print('广州poi记录数: ', len(gz_df))
print('杭州poi记录数: ', len(hz_df))
print('长沙poi记录数: ', len(cs_df))
Run
北京poi记录数: 679413
天津poi记录数: 409020
青岛poi记录数: 426314
上海poi记录数: 780347
广州poi记录数: 793056
杭州poi记录数: 534595
长沙poi记录数: 406489
三、简单分析
对比北京、天津、青岛、上海、广州、杭州、长沙这几个城市poi大类占比情况,探索性分析, 大家可以根据自己的兴趣更改城市
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
import matplotlib_inline
matplotlib_inline.backend_inline.set_matplotlib_formats('png', 'svg')
import scienceplots
import platform
plt.style.use(['science', 'no-latex', 'cjk-sc-font'])
system = platform.system() # 获取操作系统类型
if system == 'Windows':
font = {'family': 'SimHei'}
elif system == 'Darwin':
font = {'family': 'Arial Unicode MS'}
else:
font = {'family': 'sans-serif'}
matplotlib.rc('font', **font) # 设置全局字体
# 统计各城市的大类POI数量
bj_poi_count = bj_df['大类'].value_counts(normalize=True)
tj_poi_count = tj_df['大类'].value_counts(normalize=True)
qd_poi_count = qd_df['大类'].value_counts(normalize=True)
sh_poi_count = sh_df['大类'].value_counts(normalize=True)
hz_poi_count = hz_df['大类'].value_counts(normalize=True)
gz_poi_count = gz_df['大类'].value_counts(normalize=True)
cs_poi_count = cs_df['大类'].value_counts(normalize=True)
# 创建一个包含所有城市的分组条形图
fig, ax = plt.subplots(figsize=(12, 6))
# 计算每个城市的条形图位置
bar_width = 0.07
bar_positions = range(len(bj_poi_count))
bj_bars = ax.bar(bar_positions,
bj_poi_count,
width=bar_width,
label='北京')
tj_bars = ax.bar([p + bar_width for p in bar_positions],
tj_poi_count,
width=bar_width,
label='天津')
qd_bars = ax.bar([p + 2*bar_width for p in bar_positions],
dl_poi_count,
width=bar_width,
label='青岛')
sh_bars = ax.bar([p + 3*bar_width for p in bar_positions],
sh_poi_count,
width=bar_width,
label='上海')
hz_bars = ax.bar([p + 4 * bar_width for p in bar_positions],
hz_poi_count,
width=bar_width,
label='杭州')
gz_bars = ax.bar([p + 5 * bar_width for p in bar_positions],
gz_poi_count,
width=bar_width,
label='广州')
cs_bars = ax.bar([p + 6 * bar_width for p in bar_positions],
cs_poi_count,
width=bar_width,
label='长沙')
ax.set_title('POI地理兴趣点城市比较')
ax.set_xlabel('POI大类')
ax.set_ylabel('POI类别占比')
ax.set_xticks([p + bar_width for p in bar_positions])
ax.set_xticklabels(bj_poi_count.index)
ax.legend() # 添加图例
plt.show()
7个城市中,从poi大类占比来看,
- 交通设施&科教文化&休闲娱乐&运动健身&金融机构&旅游景点, 北京位列top1
- 购物消费, 长沙位列top1
- 餐饮美食, 广州位列top1
- 生活服务&公司企业, 上海位列top1
- 酒店住宿, 杭州位列top1
- 汽车相关, 天津位列top1