【问题标题】:Trying to assign two polygon elements from a multipolygon to geopandas geometry column causes ValueError尝试将多边形中的两个多边形元素分配给 geopandas 几何列会导致 ValueError
【发布时间】:2021-11-20 14:51:31
【问题描述】:

我正在使用世界地图中内置的 geopandas。我正在尝试将法属圭亚那从法国几何中分离出来,并为法属圭亚那创建一个新条目(我已经成功完成)。但是,当将缩减的欧洲法国和科西嘉岛的多面体重新评估回法国 geometry 单元格时,出现错误。

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

# Remove French Guiana (shape[0])
shape = world[world['name'] == 'France']['geometry'].all()

fr_shape = shape[2] # This works creating a POLYGON but drops Corsica :( 
world.at[world['name'] == 'France', 'geometry'] = fr_shape

fr_shape = shape[1:] # This creates a MULTIPOLYGON then throws an ValueError.
world.at[world['name'] == 'France', 'geometry'] = fr_shape

> ValueError: Must have equal len keys and value when setting with an iterable

与此处类似的问题:Geopandas set geometry: ValueError for MultiPolygon "equal len keys and value"

但是,当我试图提取多面体的三个元素中的两个并重新分配时,对我来说似乎是一个不同的问题,因为另一个是从一个数据帧直接复制到另一个数据帧而无需操作。迄今为止,尝试.values 解决方案的各种变体并没有成功抛出相同的问题。

【问题讨论】:

    标签: geopandas


    【解决方案1】:

    我已经设法找到解决方法:

    import pandas as pd
    import geopandas as gpd
    
    world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
    
    # Remove French Guiana from France.
    shape = world[world['name'] == 'France']['geometry'].all()
    
    # Multipolygon ValueError Workaround.
    fr_df = pd.Series(['France', 'France'], name='country')
    fr_df = gpd.GeoDataFrame(fr_df, geometry=[shape[1], shape[2]])
    fr_df = fr_df.dissolve(by='country')
    world.at[world['name'] == 'France', 'geometry'] = fr_df['geometry'].values                     
    
    world.plot()
    

    【讨论】:

    • 这个解决方案对我不起作用。我不得不做一些修改。起初,我从世界中删除了法国,然后按如下方式再次附加它。 #删除法国的原始几何our_world = our_world[our_world.name!= "France"] #用新几何添加法国our_world.loc[43] = [67106161, "Europe","France","FRA","2699000.0",fr_df.geometry.values[0]]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2021-03-21
    • 2017-04-19
    相关资源
    最近更新 更多