gpt4 book ai didi

python - geopandas 对 sjoin 函数的误解

转载 作者:太空宇宙 更新时间:2023-11-03 20:31:45 32 4
gpt4 key购买 nike

我对 GeoPandas (0.5.1) 的函数 sjoin 有疑问。事实上,当我在同一个 GeoDataFrame 上尝试此函数时,结果是一个包含比我预期更多结果的表。

我正在运行这个小代码:

gpd.sjoin(l.frame, l.frame, op='intersects', how='left')

我使用的框架包含:

id               geometry
0 LINESTRING (-44500.48827615567 888412.75133248...
1 LINESTRING (17219.37750674287 1117318.84695587...

结果是:

   id_left                                           geometry  index_right  \
0 0 LINESTRING (-44500.48827615567 888412.75133248... 0
0 0 LINESTRING (-44500.48827615567 888412.75133248... 1
1 1 LINESTRING (17219.37750674287 1117318.84695587... 0
1 1 LINESTRING (17219.37750674287 1117318.84695587... 1
id_right
0 0
0 1

为什么结果表中只有前 2 行?

谢谢

最佳答案

最明显的原因是以下数据帧中的行相交。

您可以通过以下方式检查:

gdf.geometry.iloc[0].intersects(gdf.geometry.iloc[1])

如果返回True,则生成的数据框只会显示数据框的每一行与其他行相交。

请记住,每个对象都与自身相交。

要删除这些内容,请添加以下内容:

result = result.loc[result.id_left.ne(result.id_right)]

关于python - geopandas 对 sjoin 函数的误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57458330/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com