子集geopandas Dataframe 返回nonetype

hts6caw3  于 2022-12-25  发布在  其他
关注(0)|答案(1)|浏览(116)

我有几个几何类型为线串和点的geodataframe,我想根据几何类型将每个gdf分成2个子集。我使用下面的代码将其子集化:

gdf1_line = gdf1[gdf1['geometry'].geom_type == 'LineString']
gdf1_point = gdf1[gdf1['geometry'].geom_type == 'Point']

因为我有多个gdf,所以我尝试创建一个如下的函数:

def subset_line(x):
    result =  x[x['geometry'].geom_type == 'LineString']
    return result

def subset_point(x):
    result =  x[x['geometry'].geom_type == 'Point']
    return result

然而,当我尝试运行它显示这个错误:

gdf_line = subset_line(gdf)

gdf_line.head()

属性错误:"NoneType"对象没有属性"head"

bakd9h0s

bakd9h0s1#

我想明白了。显然,我必须在函数中创建gdf,就像这样:

def subset_line(x):
    result =  pd.DataFrame(x[x['geometry'].geom_type == 'LineString'])
    return result

相关问题