關於如何根據shp檔案篩選csv某個省份資料集

﹄重噺,学發表於2024-11-04

問題描述:現在我有一箇中國地圖的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)
結果展示:

四川

相關文章