我正在研究Kaggle全球恐怖主义数据库(https://www.kaggle.com/START-UMD/gtd/download),并且正在尝试使用大熊猫来进行可视化。
我也在使用国家/地区数据集(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()
到目前为止,一切正常,可以检查数据集
现在,当我尝试对其进行绘图时,它会返回无意义的绘图:
geo_DF.plot()
我是地理大熊猫的新宠,所以我想问我想念的是什么,以及您将如何绘制整个欧洲地图(countries.plot)以及恐怖袭击的上方?
答案 0 :(得分:1)
数据中有错误。 DF["longitude"].min()
给出-86185896.0。
DF.loc[DF["longitude"] == DF["longitude"].min()]
如您所见,如果您运行上面的代码段,则错误行为17658。
它似乎缺少逗号。如果你这样做
DF.at[17658, 'longitude'] = -86.185896
在生成几何图形之前,它将起作用。或者,如果不确定数据到底有什么问题,也可以删除该行。