【发布时间】:2020-11-24 18:30:09
【问题描述】:
我正在使用 Cartopy shapereader 自然地球记录中提供的几何图形绘制国家一级的世界地图数据:
import cartopy.io.shapereader as shpreader
import pandas as pd
my_data = pd.read_csv("my_data.csv", index_col = 0)
shpfilename = shpreader.natural_earth(resolution='50m',
category='cultural',
name='admin_0_countries')
reader = shpreader.Reader(shpfilename)
countries = reader.records()
for country in countries:
sovgt = country.attribute["SOVEREIGNT"]
plot_val = my_data.loc[sovgt]
ax.add_geometries([country.geometry],
ccrs.PlateCarree(),
facecolor = cmap(plot_val))
我的问题是:鉴于 countries 是一个生成器,是否有一种更简洁的方法可以从特定国家/地区提取数据。如果我能做类似的事情,那将是非常可取的
for country in my_data.index.to_list():
geometry = countries[country].geometry
ax.add_geometries(geometry,
ccrs.PlateCarree(),
facecolor = cmap(plot_val))
原因是我在my_data 中的国家索引与countries 中的国家名称不一致。我有一个try:, except KeyError: 的分层列表,其中包含名称的字典来处理我的数据集中未单独列出的所有依赖状态等。
这可能是关于生成器对象的更普遍的问题。如果这也是一个愚蠢的问题,我们深表歉意。
【问题讨论】:
标签: python python-3.x pandas generator cartopy