【问题标题】:groupby shapely type in geopandasgeopandas中的groupby shapely类型
【发布时间】:2020-07-11 01:40:48
【问题描述】:

我有一个 geopandas 数据框,其中包含一个 geom 字段,该字段保留了异构形状的数据类型。 我想按类型对它们进行分组(例如 shapely.geometry.Point、shapely.geometry.Polygon、shapely.geometry.MultiPolygon 等)。此任务将通过以下方式完成:

main_gdf_clean['geometry'].groupby(by=shapely.geometry.Point)

有没有可行的方法来完成我所描述的?

【问题讨论】:

    标签: python-3.x pandas group-by geospatial geopandas


    【解决方案1】:

    GeoSeries.geom_type

    按几何类型 (df['geometry'].geom_type) 而非实际几何进行分组。

    import geopandas as gpd
    from shapely.geometry import Polygon, Point
    
    df  = gpd.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)]),
                         Polygon([(3,3), (5,3), (5,5), (3,5)]),
                         Point(1,2), Point(2,3), Point(3,3)]).to_frame('geometry')
    df = df.set_geometry(col='geometry')  # So this example knows geometry
    
    # Broadcast # of elements per unique shape type
    df['N_items'] = df.groupby(df['geometry'].geom_type).transform('count')
    #                                            geometry  N_items
    #0  POLYGON ((1.00000 1.00000, 3.00000 1.00000, 3....        2
    #1  POLYGON ((3.00000 3.00000, 5.00000 3.00000, 5....        2
    #2                            POINT (1.00000 2.00000)        3
    #3                            POINT (2.00000 3.00000)        3
    #4                            POINT (3.00000 3.00000)        3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-04
      • 2016-01-31
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多