在本文中,我们将介绍如何使用Python中的几个库,如geopandas、shapely、folium和pandas,从Excel文件中读取数据并创建交互式地图。
首先,我们需要安装所需的库。可以使用pip命令安装这些库:
pip install geopandas shapely folium pandas
接下来,我们来看一下代码:
import geopandas as gpd
from shapely.geometry import Point
import folium
import pandas as pd
filename = 'D:\\TaoF\\Desktop\\站点分布地图.html'
df = pd.read_excel('data.xlsx', sheet_name='Sheet1', header=0)
# 将DataFrame转换为GeoDataFrame
geometry = [Point(xy) for xy in zip(df['Longitude'], df['Latitude'])]
gdf = gpd.GeoDataFrame(df, geometry=geometry)
# 创建地图对象
m = folium.Map(location=[df['Latitude'].mean(), df['Longitude'].mean()], zoom_start=10)
# 添加数据点
for index, row in df.iterrows():
if row['Name'] == 'Physical Port Down':
folium.Marker(location=[row['Latitude'], row['Longitude']], icon=folium.Icon(color='blue')).add_to(m)
elif row['Name'] == 'The Device is offline':
folium.Marker(location=[row['Latitude'], row['Longitude']], icon=folium.Icon(color='red')).add_to(m)
# 显示地图
# 将地图保存为HTML文件
m.save(filename)
首先,我们导入了所需的库,并定义了一个文件名用于保存最终的HTML文件。然后,我们使用pandas库从Excel文件中读取数据,并将其存储在一个DataFrame中。
接下来,我们将DataFrame转换为GeoDataFrame。这是通过创建一个包含所有经纬度坐标的shapely Point对象列表,并将其作为geometry参数传递给gpd.GeoDataFrame()函数来完成的。
然后,我们使用folium库创建一个地图对象。我们指定了初始位置和缩放级别,并根据DataFrame中的值向地图添加数据点。在这个例子中,我们根据“Name”列的值来确定标记的颜色。
最后,我们将地图保存为HTML文件。
运行此代码后,在指定位置生成一个HTML文件。打开该文件即可查看交互式地图。
以上就是本文关于如何使用Python中的geopandas、shapely、folium和pandas库从Excel文件中读取数据并创建交互式地图的介绍。