如何将熊猫df与地理熊猫df合并以在shapefile上绘图

时间:2020-09-07 20:18:11

标签: python pandas dataframe geopandas

我正在使用以下here on Github可以找到的shapefile。我不会包含输出,但是这里是将其读取为geopandas df并绘制shapefile的代码。

states = geopandas.read_file('usa-states-census-2014.shp')
states.head()

states.plot()

我还具有以下df,即here on Kaggle上的USArrests数据集。

我想做的是合并两个数据集,以便可以用USArrests中要素的颜色图来绘制shapefile。我运行了以下代码以合并数据集。

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上绘制颜色图?谢谢!

请注意,我正在使用以下guide来帮助我,但这并不涵盖我的特定任务

1 个答案:

答案 0 :(得分:1)

使用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