geopandas能轻松处理地理数据,安装后即可读取shapefile或geojson文件,使用gpd.read_file()加载数据并查看结构与坐标系;通过gdf.plot()实现地图可视化,可设置颜色映射与图形比例;常见操作包括1.用gdf.to_crs()转换坐标系统,2.用.cx或.within()按位置筛选数据,3.用pd.concat()合并多个geodataframe,注意统一crs。新手可从基础入手逐步掌握其强大功能。

处理地理数据其实没那么神秘,用 Python 的 GeoPandas 库就能轻松上手。它基于 Pandas 扩展而来,专门用来处理带有空间信息的数据,比如地图、坐标点、多边形区域等。如果你已经熟悉 Pandas,那学 GeoPandas 会非常顺手。

下面从几个常见需求出发,带你快速入门。
安装与基础准备
GeoPandas 不是默认安装的库,需要单独安装。推荐使用 pip 或 conda:
立即学习“Python免费学习笔记(深入)”;

pip install geopandasconda install -c conda-forge geopandas
安装完成后,导入常用模块:
import geopandas as gpd import matplotlib.pyplot as plt
GeoPandas 主要处理的是 GeoDataFrame,它和普通的 DataFrame 类似,只不过多了一个 geometry 列,里面存放的就是地理信息(如点、线、面)。

加载地理数据:读取 Shapefile 或 GeoJSON
最常见的地理数据格式有 Shapefile 和 GeoJSON。GeoPandas 对这两种格式支持非常好,可以直接读取:
# 读取 Shapefile 文件
gdf = gpd.read_file('your_shapefile.shp')
# 读取 GeoJSON 文件
gdf = gpd.read_file('your_geojson.geojson')注意:
- Shapefile 通常不是一个文件,而是一组文件(.shp、.shx、.dbf 等),必须放在同一目录下。
- GeoJSON 是纯文本格式,适合网络传输,也更容易查看内容。
读取后可以用 gdf.head() 查看结构,用 gdf.crs 查看坐标系信息。
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
地图可视化:画出你的第一张地理图
GeoPandas 内置了简单的绘图功能,依赖 matplotlib。比如:
gdf.plot() plt.show()
如果你想更精细控制样式,可以加参数:
gdf.plot(column='population', legend=True, cmap='OrRd')
这样就可以根据某一列(比如人口)进行颜色映射,做出热力图效果。
小技巧:如果地图显示太小或者比例不对,可以用 figsize=(10, 8) 控制大小,或者用 ax.set_aspect('equal') 设置比例一致。
常见操作:坐标转换、筛选、合并
1. 坐标系统转换(CRS)
不同数据可能使用不同的坐标系统,统一坐标系很关键。例如转为 WGS84(经纬度):
gdf = gdf.to_crs(epsg=4326)
2. 按位置筛选
你可以用 .cx 或 .within() 来筛选某个范围内的数据:
# 筛选 x 在 100~110,y 在 30~40 范围内的记录 subset = gdf.cx[100:110, 30:40]
3. 合并多个地理数据
如果有两个 GeoDataFrame,想拼在一起:
combined = gpd.GeoDataFrame(pd.concat([gdf1, gdf2], ignore_index=True))
不过要注意两个数据的 CRS 是否一致,否则得先统一。
基本上就这些内容。GeoPandas 上手不难,但有很多细节需要注意,比如坐标系统、投影方式、几何类型等。新手可以从读取数据、画图、简单分析开始练起,慢慢就会发现它的强大之处了。









