在 geopandas 中绘制数据

Ploting data in geopandas

我正在研究 Kaggle 全球恐怖主义数据库 (https://www.kaggle.com/START-UMD/gtd/download),我正在尝试使用 geopandas 进行可视化。

我也在使用国家数据集 (http://www.naturalearthdata.com/downloads/110m-cultural-vectors/110m-admin-0-countries/)

import seaborn as sns
import geopandas as gpd
import matplotlib.pyplot as plt
sns.set(style = "ticks", context = "poster")
from shapely.geometry import Point


countries = gpd.read_file("C:/Users/petr7/Desktop/ne_110m_admin_0_countries/")
countries = countries[(countries['NAME'] != "Antarctica")]
countries.plot(figsize = (15, 15))

使用上面的代码我可以轻松绘制整个欧洲,

之后我导入 kaggle 恐怖分子数据集并将其定义为 geopandas 数据框

DF = pd.read_csv("C:/Users/petr7/Desktop/gtd/globalterrorismdb_0718dist.csv", encoding='latin1')
crs = {"init": "epsg:4326"}

geometry = [Point(xy) for xy in zip ( DF["longitude"], DF["latitude"])]
geo_DF = gpd.GeoDataFrame(DF, geometry = geometry)
geo_DF.head()

到目前为止一切正常,可以检查数据集

现在当我尝试绘制它时 return 胡说八道的情节:

geo_DF.plot()

我对 geopandas 很陌生,所以我想问问我缺少什么,以及你如何绘制整个欧洲地图 (countries.plot) 以及恐怖袭击事件上方的地图?

PICTURE HERE

数据有误。 DF["longitude"].min() 给出 -86185896.0。

DF.loc[DF["longitude"] == DF["longitude"].min()]

如您所见,如果您 运行 上面的代码片段,错误行是 17658。

好像少了个逗号。如果你这样做

DF.at[17658, 'longitude'] = -86.185896

在生成几何图形之前,它会起作用。或者,如果您不确定数据到底出了什么问题,您可以删除该行。