数据集笔记:处理北大POI 数据:保留北京POI

server/2024/11/24 12:06:57/

数据来源:Map POI (Point of Interest) data - Official data of the contest (pku.edu.cn)

windows 下载方法:数据集笔记:windows系统下载北大开放数据研究平台的POI数据-CSDN博客

1 读取数据

1.1 列出所有的文件

dir1='D:/data/PKU POI/2018-POICSV-1'
dir2='D:/data/PKU POI/2018-POICSV-2'
dir3='D:/data/PKU POI/2018-POICSV-3'import pandas as pd
import osfile_lst1=os.listdir(dir1)
file_lst2=os.listdir(dir2)
file_lst3=os.listdir(dir3)

1.2 只读取cityname是北京的那些POI记录

for i in range(len(file_lst1)):try:tmp=pd.read_csv(dir1+'/'+file_lst1[i], encoding='gbk')df=pd.concat([df,tmp[tmp['cityname']=='北京市']])except:print(i)for i in range(len(file_lst2)):try:tmp=pd.read_csv(dir2+'/'+file_lst2[i], encoding='gbk')df=pd.concat([df,tmp[tmp['cityname']=='北京市']])except:print(i)for i in range(len(file_lst3)):try:tmp=pd.read_csv(dir3+'/'+file_lst3[i], encoding='gbk')df=pd.concat([df,tmp[tmp['cityname']=='北京市']])except:print(i)df

一共1233502行

2 筛选在五环内的记录

from shapely import Polygonfive_ring=Polygon([(116.549478,40.004123),(116.207786,40.004123),(116.207786,39.75835),(116.549478,39.75835)])
#假设五环是一个长方形,这是五环对角线两个顶点# 使用空间索引快速筛选在多边形内的点
sindex = gdf.sindex
'''
从GeoDataFrame gdf中生成一个空间索引
空间索引允许快速的空间查询,如确定某个点是否在特定区域内。
'''possible_matches_index = list(sindex.intersection(five_ring.bounds))
'''
five_ring.bounds 返回多边形的边界框(一个矩形,可以完全包含这个多边形)
sindex.intersection() 方法找出所有在这个边界框内的地理对象的索引
这一步不完全精确,因为它基于边界框而非多边形精确形状
【其实对于我们现在这个问题来说,因为五环已经简化成了长方形,这一步就够了】'''possible_matches = gdf.iloc[possible_matches_index]
'''
使用前一步获取的索引从gdf中选出可能在多边形内的地理对象,这些是possible_matches
'''precise_matches = possible_matches[possible_matches.intersects(five_ring)]
'''
进一步使用intersects方法筛选出真正与five_ring多边形相交的地理对象,这些是precise_matches
'''# 将结果添加到原始GeoDataFrame
gdf['is_in_five_ring'] = gdf.index.isin(precise_matches.index)gdf_bj=gdf[gdf['is_in_five_ring']==True]
gdf_bj

还剩887416条记录

3 提取有用的列

gdf_bj.columns
'''
Index(['address', 'adname', 'page_publish_time', 'adcode', 'pname', 'cityname','name', 'location', '_id', 'type', 'Unnamed: 10', 'geometry','is_in_five_ring'],dtype='object')
'''gdf_bj=gdf_bj[['address', 'adname', 'name',   'type', 'geometry']]
gdf_bj


http://www.ppmy.cn/server/20851.html

相关文章

ijkplayer iOS编译问题之[-Wincompatible-function-pointer-types]

编译环境 Apple M1 Pro Sonoma 14.1.2 编译的时候出现如下报错: libavcodec/aarch64/h264dsp_init_aarch64.c:84:38: error: incompatible function pointer types assigning to h264_weight_func (aka void (*)(unsigned char *, long, int, int, int, int)) from…

计算机网络知识点

层次模型 IQS七层模型 TCP/IP 原理体系结构 应用层 应用层 应用层 表示层 运输层 运输层 会话层 网际层 网络层 运输层 网络接口层 数…

Linux 下一些简单配置和软件安装

零、前言 以 VAR 开头的表示用户可配置的变量 以 CONST 开头的表示涉及到的系统常量,例如某个特定文件的地址路径。一般不可变,但是不排除因版本不同需要进行修改。 出现 PATH 表示这是一个路径信息 一、配置 1.1、更换 yum 源 PATH_YUM_CONF"…

区块链与金融科技

前言 人类与元宇宙之间就差一个区块链,一本书读懂区块链与金融:从根源细致剖析区块链原理,以金融视角洞察区块链技术,在数字化转型中落地区块链。 卖点 由表及里:从货币变迁到加密技术,从根源细致剖析区…

FebHost:顶级域名、通用域名、国别域名注册介绍

在创建网站时,选择适当的顶级域名是至关重要的。顶级域名不仅有助于传播产品信息,还能提高受众的信任度和参与度,进而改善品牌记忆。 顶级域名有各种类型,每种都有其特定用途。最常见的两种顶级域是通用顶级域(gTLD&a…

【ZZULIOJ】1084: 计算两点间的距离(多实例测试)(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。 输入 输入数据有多组,每组占一行,由4个实数组成,分别表…

ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件

前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了一个和之前类似的文件选择上传的需求,不过这次是需要手动点…

数据分析:筛选多组交集特征

介绍 有时候需要在多个组间筛选它们的交集特征&#xff0c;本文利用R语言实现该目的 加载R包 library(UpSetR) library(tidyverse)Upset画图 movies <- read.csv(system.file("extdata", "movies.csv", package "UpSetR"), header T, s…