本系列文章是根据GeoPandas
官方文档翻译整理,学习任何一个Python第三方库,其官方文档都是最好的学习资料。相比网络搜索得到的一些资料,官方文档是权威的一手资料,其内容全面、准确可靠。通过官方文档入手,能够保证学习认知不会有大偏差。在学习完官方文档后,可以在寻找其他资料进一步学习。
点击“阅读原文”或者直接访问下方链接,查看翻译整理的“GeoPandas 0.12.2 中文文档”。
https://www.mizhushare.com/docs
-
可以通过百度网盘获取,需要在本地配置代码运行环境:
链接:https://pan.baidu.com/s/185Qs6RpVhyP2nm9VV39Ehw?pwd=mnsj
提取码:mnsj
-
前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/geopandas
groupby()
函数聚合数据。但是对于空间数据,我们有时也需要聚合几何特征。例如,我们可能有地方行政单位的数据,但实际上我们对研究国家层面的内容更感兴趣。
在 geopandas
中,我们可以使用 dissolve()
函数聚合几何特征。
dissolve()
可以被认为是在做三件事:
将给定组中的所有几何图形合并为单个几何对象(使用unary_union
方法),然后使用 groupby.aggregate
聚合组中的所有数据行,最后将这两个结果结合起来。
1GeoDataFrame.dissolve(by=None,
2 aggfunc='first',
3 as_index=True,
4 level=None,
5 sort=True,
6 observed=False,
7 dropna=True )
简单示例:
本次仍以GeoPandas
自带的world
数据集为例。
1world = gpd.read_file('./datasets/naturalearth_lowres/naturalearth_lowres.shp')
2
3world = world[['continent', 'geometry']]
4
5world.plot(cmap="tab10")
通过 dissolve()
将其转换为大陆级别的数据集:
1continents = world.dissolve(by='continent')
2
3continents.plot(cmap="tab10")
aggfunc参数:
dissolve()
中aggfunc
参数默认为“first”
,这意味着在聚合操作中找到的第一行属性值将分配给生成的geodataframe
。然而,它也接受pandas.groupby
允许的其他汇总统计选项,包括:
-
‘first’
-
‘last’
-
‘min’
-
‘max’
-
‘sum’
-
‘mean’
-
‘median’
-
function
-
string function name
-
list of functions and/or function names, e.g. [np.sum, ‘mean’]
-
dict of axis labels -> functions, function names or list of such.
-
聚合单列:
aggfunc
参数向dissolve()
方法传递不同的函数以聚集人口。1continents = world.dissolve(by='continent', aggfunc='sum')
2
3continents.plot(column = 'pop_est', scheme='quantiles', cmap='YlOrRd')
-
聚合多列或对一列采用多种聚合方法:
’count’
聚合’name’
列,用’min’
和’max’
聚合’pop_est’
列。1world = gpd.read_file('./datasets/naturalearth_lowres/naturalearth_lowres.shp')
2
3continents = world.dissolve(by='continent' , aggfunc={"name":"count" , "pop_est":["min" , "max"]})
本篇文章来源于微信公众号: 码农设计师