Geopandas 遍历 shapefile 子集并运行函数(隔离包)

问题描述 投票:0回答:0

我有一个大型 shapefile,其中包含多行较小的区域(城市)多边形,这些多边形与一个字段分组到一系列较大的地理区域(县),并且需要为 shapefile 的子集运行一个函数(不是针对整个 shapefile,而是分别针对每个使用来自较小区域行的数据的较大区域)。 我使用的函数来自 Segregation python 包。

下面的代码成功运行了单个大面积的隔离功能

import geopandas as gpd
import matplotlib.pyplot as plt
import segregation
import pandas as pd

df = gpd.read_file(hiddenlocation.shp')
from segregation.singlegroup import AbsoluteCentralization, Gini
cent = AbsoluteCentralization(df, group_pop_var='BlackNH20', total_pop_var='Total20')
cent.statistic

下面的代码成功生成了按 COG 字段分组的 shapefile 子集

dfs = {}
for cog, df_cog in df.groupby('COG'):
    dfs[cog] = df_cog
dfs['CTMetro'].head()

接下来,我想运行一个脚本,将第一组代码中的函数应用于上面第二组代码中生成的 shapefile 子集。

简而言之,我希望链接这两段代码,以便脚本使用 COG 字段作为过滤器在数据帧上运行一个循环,然后对代表一个独特大区域的每个数据帧子集应用 AbsoluteCentralization 函数。最后,应该将这一系列循环函数的统计信息输出到一个新字典中,该字典包含 2 列,其中包含以下字段 (cog, statistic)

我尝试了几种不同的解决方案,但似乎无法弄清楚如何为循环的每次迭代运行该函数。

python loops geopandas shapefile
© www.soinside.com 2019 - 2024. All rights reserved.