小编g12*_*56k的帖子

在 for 循环内对 for 循环中的数据帧值求和

我有一个large polygon文件,small polygon文件,还是points文件。我在这里所做的是循环遍历大多边形以查找哪些小多边形相交。然后计算大多边形内每个小多边形的面积。然后我循环遍历小多边形以查找每个多边形中的点统计数据。

我发现了number_of_somethin每个小多边形的价值。问题是如何对number_of_somethin大多边形内的所有小多边形值求和并将结果存储在原始large_polygon文件中作为新列,比方说large_polygon['smth_sum']

df_res_2.loc[idx, 'smth'] = number_of_somethin在大多边形内的每个小多边形中得到了 number_of_somethin 值。现在我需要将它们相加large_polygon['smth_sum']

注: FID为大多边形的id,ID为小多边形的id

import geopandas as gpd

small_polygon = gpd.read_file(r'R:\...\small.shp')
large_polygon = gpd.read_file(r'R:\...\large.shp')
points = gpd.read_file(r'R:\...\points.shp')

SmallJoin =gpd.sjoin(small_polygon, large_polygon)[['FID', 'ID', 'someValue','geometry']]

for i in large_polygon.index:
    df_i = SmallJoin[SmallJoin['FID'] == i]

    # i do something here, f.e. calculate small polgyon area
    df_res = gpd.overlay(large_polygon, df_i, how='intersection')
    df_res['area'] = round((df_res.apply(lambda row: row.geometry.area, axis=1)), …
Run Code Online (Sandbox Code Playgroud)

python dataframe geopandas

5
推荐指数
1
解决办法
267
查看次数

标签 统计

dataframe ×1

geopandas ×1

python ×1