Python Geopandas-具有大陆数据的绘图图
我正试图用Geopandas绘制大陆上的数据 根据每个国家/地区记录的票证数量,我的数据透视表中有以下票证数量:Python Geopandas-具有大陆数据的绘图图,python,python-3.x,geopandas,Python,Python 3.x,Geopandas,我正试图用Geopandas绘制大陆上的数据 根据每个国家/地区记录的票证数量,我的数据透视表中有以下票证数量: Number of Tickets region Africa 370 Americas 1130 Asia 873 Europe 671 Oceania 445 在我的票证列表数据框中,我记录了每个国家的案例。每个国家都被映射到一个地区和一个大陆。按照逻辑,每个记录的
Number of Tickets
region
Africa 370
Americas 1130
Asia 873
Europe 671
Oceania 445
在我的票证列表数据框中,我记录了每个国家的案例。每个国家都被映射到一个地区和一个大陆。按照逻辑,每个记录的票证都指定了一个国家、地区和大陆
为了能够绘制数据,我将Geopandas数据框(国家几何图形)与我的票证数据框合并在3个字母的国家代码上,并确保生成的数据框是geodataframe:
tickets_region = pd.merge(world, tickets, left_on='ISO_A3', right_on='code-3')
type(tickets_region)
geopandas.geodataframe.GeoDataFrame
我尝试用以下代码绘制数据:
fig, ax = plt.subplots()
ax = tickets_region.plot('continent', cmap='Reds',scheme='headtailbreaks')
ax.tick_params(left=False, labelleft=False, bottom=False, labelbottom=False)
plt.title('Number of Tickets by Continent')
plt.box(False)
plt.show()
然而,这个代码块永远不会结束,会消耗内存和CPU周期,我必须按Ctrl-C来删除它。相同的代码适用于“代码3”(三个字母的国家代码)
我假设这是由于geojson文件中未定义的“大陆”地理位置造成的,但我希望Python通过合计票证数量来填充这一地理位置。我看到我的期望在某个地方有一个断裂的逻辑,但我看不到这一点
有没有关于我如何让大陆情节运作的想法
多谢各位
编辑:“world”数据框是从GeoPandas数据框下载的geojson文件。您可以使用方法
dissole()
。您可以查看GeoPandas文档。您的代码可以这样修改:
tickets_region = tickets_region.dissolve(by='continent', aggfunc='sum')
fig, ax = plt.subplots()
ax = tickets_region.plot(column='Number of Tickets', cmap='Reds',scheme='headtailbreaks')
ax.tick_params(left=False, labelleft=False, bottom=False, labelbottom=False)
plt.title('Number of Tickets by Continent')
plt.box(False)
plt.show()
很抱歉没有回复Pierre Loic。我正在测试您提到的溶解,但它对20K行没有任何影响:iPython只是变得没有响应。我仍在努力寻找你的答案,等我有了解决办法,我会想出来的。非常感谢,是的,这就是解决办法。我只想指出,当运行数千行时,使用.dissole不会结束。我建议先进行数据汇总(pivot\u table,pivot…),然后使用.discose。否则它会占用大量CPU周期并消耗大量内存。