gpt4 book ai didi

python - GEOPANDAS .sjoin 'index_left' 和 'index_right' 不能是正在加入的框架中的名称

转载 作者:行者123 更新时间:2023-12-04 01:49:23 27 4
gpt4 key购买 nike

我正在尝试对 2 个地理数据框进行空间连接。

这两个索引都是这种类型:
范围索引(开始=0,停止=312,步骤=1)

我收到以下错误:

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-228-d0d0190e2940> in <module>()
----> 1 Sales_new_data_concastinate_SR_coundaries_joines=gpd.sjoin(Sales_new_data_concastinated,SR_locations, op='within',how='left')

~/anaconda3/lib/python3.7/site-packages/geopandas/tools/sjoin.py in sjoin(left_df, right_df, how, op, lsuffix, rsuffix)
51 or any(right_df.columns.isin([index_left, index_right]))):
52 raise ValueError("'{0}' and '{1}' cannot be names in the frames being"
---> 53 " joined".format(index_left, index_right))
54
55 # the rtree spatial index only allows limited (numeric) index types, but an

ValueError: 'index_left' and 'index_right' cannot be names in the frames being joined

来源 https://github.com/geopandas/geopandas/blob/master/geopandas/tools/sjoin.py

说:

the rtree spatial index only allows limited (numeric) index types, but an # index in geopandas may be any arbitrary dtype. so reset both indices now # and store references to the original indices, to be reaffixed later. –



什么是我真正要做的?

最佳答案

您的 GeoDataFrame 之一中可能有名为“index_left”和“index_right”的列。

对于您的特定情况,这可能很烦人,但这就是 GeoPandas 中当前实现空间连接方法的方式。因此,您需要删除它们或重命名它们。

解决方案 1:如果左侧或右侧数据框中有一列具有这些名称,则可以使用 rename 重命名该列。方法:例如df = df.rename(columns={'left_index': 'other_name'} .

解决方案2:删除带有df = df.drop(['index_right', 'index_left'], axis=1)的列

关于python - GEOPANDAS .sjoin 'index_left' 和 'index_right' 不能是正在加入的框架中的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53957371/

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