我为自己是一个Python初学者而预先道歉,可能有一个简单的问题,但是我找不到任何解决方案。
我正在研究Geopandas全球地图,为此我希望为所有满足特定条件的国家/地区提供标签。
import geopandas
import pandas
import matplotlib.pyplot as plt
get_ipython().run_line_magic('matplotlib', '')
fp="countries_shp/countries.shp"
map_df = geopandas.read_file(fp)
map_df.head()
df = pandas.read_csv("NDC_LIST.csv", sep=';')
df.head()
df = df[['ISO3','TARGET', 'COMB', 'MENTIONED', 'ACCESSFULL', 'MOBILE']]
merged = map_df.set_index('ISO3').join(df.set_index('ISO3'))
merged.head()
merged.fillna(0)
cols = ['TARGET', 'MENTIONED', 'COMB']
for col in cols:
merged[col] = merged[col].apply(lambda x: int(x) if x == x else 0)
merged.head()
vmin = merged['COMB'].min()
vmax = merged['COMB'].max()
fig, ax = plt.subplots(1, figsize=(12, 6))
merged.plot(column='COMB', cmap='Reds',linewidth=0.8, ax=ax)
merged.apply(lambda x: ax.annotate(s=x.NAME,
xy=x.geometry.centroid.coords[0], ha='center'),axis=1);
ax.axis('off')
ax.set_title('OFF-GRID NDC COMPONENTS', fontdict={'fontsize': '25',
'fontweight' : '3'})
我确实阅读了以下选项:
.where(merged.COMB > 0)
但是我不确定如何包含它。
非常感谢,我们将不胜感激。