我正在使用以下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来帮助我,但这并不涵盖我的特定任务
答案 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