You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导入Excel数据到Python结合现有代码生成Folium热力图

Excel导入实现方案

1. 前置准备:调整Excel文件结构

在你的Eingabe_Python.xlsx中新建两个工作表:

  • 第一个工作表命名为Quellen,对应炉渣供应点数据,列名设置为City、Amount、Latitude、Longitude,按列填入对应数据
  • 第二个工作表命名为Bedarf,对应炉渣需求点数据,列名和上表完全一致,按列填入需求点数据

2. 安装依赖

执行命令安装对应读取库,避免版本兼容问题:

pip install pandas openpyxl

注:高版本pandas默认使用openpyxl读取xlsx格式文件,无需安装xlrd,xlrd 2.0及以上版本不支持xlsx格式,无需额外适配

3. 替换原有硬编码逻辑

你原有代码中手动创建q、b两个DataFrame的部分,全部替换为以下导入代码即可:

# 替换为你本地Eingabe_Python.xlsx的绝对路径
excel_file_path = r"C:\Users\stefa\Desktop\Bachelorarbeit\Daten_Python\Eingabe_Python.xlsx"

# 读取供应点数据
q = pd.read_excel(excel_file_path, sheet_name="Quellen", engine="openpyxl")
# 读取需求点数据
b = pd.read_excel(excel_file_path, sheet_name="Bedarf", engine="openpyxl")

后续GeodataFrame生成、绘图、热力图生成逻辑保持你原有代码不变即可正常运行。

4. 可选优化:自动生成标记点

你原有代码中标记点为硬编码添加,可替换为以下遍历逻辑自动生成,适配Excel中新增的点位:

# 批量添加供应点标记
for _, row in gq.iterrows():
    folium.Marker(
        [row["Latitude"], row["Longitude"]],
        popup=folium.Popup(row["City"], show=True)
    ).add_to(hmap)

# 批量添加需求点标记
for _, row in gb.iterrows():
    folium.Marker(
        [row["Latitude"], row["Longitude"]],
        popup=folium.Popup(row["City"], show=True)
    ).add_to(hmap)

5. 原有代码小修复

你原有代码中最大值计算逻辑有问题,建议修改:

# 原有写法:max_amount = float(gb['Amount'].max() and gq['Amount'].max())
# 修改为取两个表的最大值,逻辑更准确
max_amount = float(max(gb["Amount"].max(), q["Amount"].max()))

6. 常见问题排查

  • 提示文件不存在:检查Excel路径是否正确,Windows路径前加r避免转义字符识别错误
  • 提示列名不存在:检查Excel工作表的列名是否和代码中完全一致,不要有多余空格、大小写差异
  • 提示数据类型错误:检查Amount、Latitude、Longitude列是否为纯数字格式,不要包含中文、特殊符号

实现效果参考:
效果示意图

内容的提问来源于stack exchange,提问作者bose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:27:03