python - 如何将 pandas df 与 geopandas df 合并以在 shapefile 上绘图
问题描述
我正在使用可以在 Github上找到的以下 shapefile 。我不打算包含输出,但这里是作为 geopandas df 读取它并绘制 shapefile 的代码。
states = geopandas.read_file('usa-states-census-2014.shp')
states.head()
states.plot()
我还有以下 df,这是USArrests
可以在 Kaggle上找到的数据集。
我想要做的是合并这两个数据集,这样我就可以用USArrests
. 我运行以下代码来合并数据集。
df = pd.read_csv("USArrests.csv")
df.rename(columns = {'Unnamed: 0':'NAME'}, inplace = True)
merged = pd.merge(df, states, on=['NAME']).drop_duplicates(subset=['NAME'])
合并有效,但是现在当我运行时,states.plot()
我得到了一个线图,我假设这是因为 df 不再是GeoDataFrame
.
我的问题是,如何从中获取数据USArrests
并使用它在 shapefile 上绘制颜色图?谢谢!
请注意,我正在使用以下指南来帮助我,但它不涵盖我的具体任务
解决方案
使用GeoDataFrame.merge
方法。这样它仍然是 GeoDataFrame。在您的情况下发生的merged
只是 pandas.DataFrame 而已。
merged = states.merge(df, on='NAME').drop_duplicates(subset=['NAME'])
我猜测正确的形式,因为您没有显示任何数据帧的结构。有关更多信息,请参阅文档https://geopandas.readthedocs.io/en/latest/docs/user_guide/mergingdata.html?highlight=merge#attribute-joins
推荐阅读
- docker - AWS Elastic Container Service CI 模板问题
- r - 并非所有计数都与 geom_text 一起出现
- ios - 受约束的协议仍然抱怨是通用的
- kubernetes - 主库 Kube_Client_Errors 中的 Kubernetes Kube 错误
- java - Java 中的 C# IEnumerable
- windows - Windows DLL用户空间调用过程
- html - 移动设备上标题下方的额外空间
- android - 如何在 react native 中使用 @react-native-mapbox-gl/maps 库实现地理编码器
- javascript - Javascript - 在网页中查找 console.errors 的来源
- debugging - Strapi GET 请求 /upload/files 抛出错误