关于如何根据shp文件筛选csv某个省份数据集

问题描述:现在我有一个中国地图的shp文件和一个全球降水数据的csv文件,我只想要四川省份的降水数据,该如何得到。

中国地图

中国地图

全球降雨数据

中国全球降雨数据格式
点击查看代码
import geopandas as gpd
import pandas as pd
shp = gpd.read_file(r'.\中华人民共和国\中华人民共和国.shp',encoding='utf-8') # encoding 设置为utf-8保证中文可读

# 将csv文件转换为GeoDataFrame格式
gdf_csv = gpd.GeoDataFrame(
    csv, geometry=gpd.points_from_xy(csv.LON, csv.LAT))

gdf_csv.crs = "EPSG:4326" # 设定csv中的地理坐标,需要和shp相同

# 选择特定省份的SHP文件,这里shp文件中name字段是省份
province_name = '四川省'
province_shp = shp[shp['name'] == province_name]
# 返回省份内的点
data= gpd.sjoin(gdf_csv, province_shp, how='inner', predicate='within')

# 将筛选后的结果保存为新的CSV文件,这里重新索引了,防止影响其他数据
data.reset_index(drop=True).to_csv(r'.\四川省数据.csv', index=False)
结果展示:

四川

posted @ 2024-11-04 18:08  ﹄重噺,学  阅读(15)  评论(0编辑  收藏  举报