如何查询GeoDataFrame?

问题描述 投票:0回答:1

我对Geopandas有疑问。

我有一个国家的形状文件,我正在加载到geopandas。形状文件具有国家中所有州的形状。

我需要提取一个状态。我已经尝试过探索文档和stackoverflow但是无法扭曲我如何使用query()方法来检索单个状态。

import geopandas as gpd
import os

# get current directory path
cur_dir = os.path.dirname(os.path.realpath(__file__))

gdf_shp_state = gpd.read_file(cur_dir + '/data/StateBoundary/StateBoundary.shp')
print(type(gdf_shp_state))
print(gdf_shp_state)

输出:

<class 'geopandas.geodataframe.GeoDataFrame'>
                   state                                           geometry
0      ANDAMAN & NICOBAR  (POLYGON ((10341718.474 1449533.160500001, 103...
1             CHANDIGARH  POLYGON ((8546255.616099998 3606050.813100003,...
2   DADAR & NAGAR HAVELI  (POLYGON ((8137193.4859 2315664.964499999, 813...
3            DAMAN & DIU  (POLYGON ((8111624.4714 2328002.898499999, 811...
4                  DELHI  POLYGON ((8583390.569699999 3359116.190099999,...
5                HARYANA  POLYGON ((8524318.5392 3516490.864500001, 8524...
6              JHARKHAND  POLYGON ((9762288.284699999 2772949.712499999,...

问题是:如何查询GeoDataFrame?

有一个名为gdf_shp_state.query()的方法,它希望我把查询作为string。有人可以帮我提供一个示例查询字符串,我需要使用它来获取单个状态的GeoDataFrame吗?

python pandas geopandas
1个回答
1
投票

地理数据帧的工作方式与常规数据帧的工作方式相同,因此这里的查询可能是

gdf_shp_state.query("state=='ANDAMAN & NICOBAR'")

选择状态等于'ANDAMAN & NICOBAR'的行

以上相当于:

gdf_shp_state[gdf_shp_state.state == 'ANDAMAN & NICOBAR']
© www.soinside.com 2019 - 2024. All rights reserved.