Pandas:按列选择行时出现问题,代码返回空的geodataframe

2024-04-29 18:48:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据“几何体”列选择行。我有这个问题,因为我的代码返回空的GeoDataFrame

gdf = gpd.read_file('/home/gis/warstwadotestow.shp')  # Your roofs
gdf.iloc[0]

          fid powiat                             lokalnyid                 wersjaid  ...  aktualno_1 koniecwers kod_kst                                           geometry
0  10176908.0   2205  2C9F7599-ADDA-AFD4-E053-CA2BA8C0483D  2020/06/01 00:00:00.000  ...  2018-07-09       None     108  POLYGON ((432885.670 718934.320, 432892.920 71...

我希望选择的行不是按.iloc[0],而是如下所示:

roof = gdf[gdf['geometry'] == 'POLYGON ((432885.67 718934.3199999999, 432892.92 718935.98, 432893.57 718933.12, 432898.57 718934.26, 432899.7 718929.3, 432894.7 718928.16, 432896.01 718922.4399999999, 432888.76 718920.79, 432885.67 718934.3199999999))']

代码返回:

Empty GeoDataFrame
Columns: [fid, powiat, lokalnyid, wersjaid, status_bdo, nazwa, kategoria_, funkcja_og, funkcja_sz, liczba_kon, zabytek, skrot_kart, aktualnosc, aktualno_1, koniecwers, kod_kst, geometry]
Index: []

问题在哪里


Tags: 代码geometrypolygongeodataframefidgdfilockod
1条回答
网友
1楼 · 发布于 2024-04-29 18:48:16

您将几何类型的列与字符串进行了比较。这就是它返回空GeoDataFrame的原因

这是根据geometry列筛选dataframe的示例代码

from shapely.geometry import Point, Polygon
import geopandas
import pandas as pd
polys = geopandas.GeoSeries({
    'foo': Polygon([(5, 5), (5, 13), (13, 13), (13, 5)]),
    'bar': Polygon([(10, 10), (10, 15), (15, 15), (15, 10)]),
})
df = pd.DataFrame([])

df['geometry'] = polys
df = df[df['geometry'] == Polygon([(5, 5), (5, 13), (13, 13), (13, 5)])]
df

相关问题 更多 >