我找到了一个使用https://www.naturalearthdata.com/downloads/110m-cultural-vectors/的shapefile创建世界地图的代码下载国家v4.1.0
shapefile = 'data/countries_110m/ne_110m_admin_0_countries.shp'
datafile = 'data/obesity.csv'
gdf = gpd.read_file(shapefile)[['ADMIN', 'ADM0_A3', 'geometry']]
gdf.columns = ['country', 'country_code', 'geometry']
gdf.head()
country country_code geometry
0 Fiji FJI (POLYGON ((180 -16.06713266364245, 180 -16.555...
1 United Republic of Tanzania TZA POLYGON ((33.90371119710453 -0.950000000000000...
2 Western Sahara SAH POLYGON ((-8.665589565454809 27.65642588959236...
3 Canada CAN (POLYGON ((-122.84 49.00000000000011, -122.974...
4 United States of America USA (POLYGON ((-122.84 49.00000000000011, -120 49....
很多人使用这个文件,一切正常。但是当我打开文件时,它只有一列'geometry'
KeyError: "['ADMIN', 'ADM0_A3'] not in index"
我不明白是文件有问题,还是代码有问题?
更新。我认为问题出在这个错误上。有时这是有效的,有时这个错误出现
DriverError: Unable to open ne_110m_admin_0_countries.shx or ne_110m_admin_0_countries.SHX. Set SHAPE_RESTORE_SHX config option to YES to restore or create it.
你好像重命名了列:
gdf.columns = ['country', 'country_code', 'geometry']
其中admin
变为country
,ADM0_A3
变为country_code
我解决了这个问题。解决此错误的DriverError: Unable to open ne_110m_admin_0_countries.shx or ne_110m_admin_0_countries.SHX. Set SHAPE_RESTORE_SHX config option to YES to restore or create it.
我刚刚创建了一个文件夹,里面有7个不同格式的相同文件:。cpg, .dbf、.prj .README、.shp .shx, .VERSION并使用该目录下的。shp文件,Jupyter能够正确读取该文件的所有列。