【发布时间】:2021-08-08 23:48:28
【问题描述】:
我正在尝试使用 geopandas 重新创建纽约州地理数据的地图,并在此处找到可用数据:https://pubs.usgs.gov/of/2005/1325/#NY。我可以打印地图,但不知道如何利用其他文件来绘制它们的列。 任何帮助将不胜感激。
【问题讨论】:
我正在尝试使用 geopandas 重新创建纽约州地理数据的地图,并在此处找到可用数据:https://pubs.usgs.gov/of/2005/1325/#NY。我可以打印地图,但不知道如何利用其他文件来绘制它们的列。 任何帮助将不胜感激。
【问题讨论】:
你到底想做什么?
这是一个快速设置,您可以使用它从站点下载 Shapefile 并访问 GeoDataFrame:
import geopandas as gpd
from io import BytesIO
import requests as r
# Link to file
shp_link = 'https://pubs.usgs.gov/of/2005/1325/data/NYgeol_dd.zip'
# Downloading the fie into memory
my_req = r.get(shp_link)
# Creating a file stream for GeoPandas
my_zip = BytesIO(my_req.content)
# Loading the data into a GeoDataFrame
my_geodata = gpd.read_file(my_zip)
# Printing all of the column names
for this_col in my_geodata.columns:
print(this_col)
现在您可以使用方括号访问my_geodata 数据中的多个列。例如,如果我想访问存储在名为“SOURCE”的列中的数据,我可以使用my_geodata["SOURCE"]。
现在只需弄清楚您到底想用这些数据做什么。
【讨论】:
merge 或 Geopandas 的sjoin 来完成此操作。这是一个简单的示例:x = pd.DataFrame({'col1':[1,2,3], 'col2':['a','b','c']}) y = pd.DataFrame({'col1':[3,3,1,1,2,2]}) y.merge(x, on='col1', how='left') 您的案例的问题是找到这些多个文件的确切连接方式。您必须自己阅读他们的文档(在页面顶部)才能弄清楚这一点,并尝试了解哪些列用作标识符。