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

如何用Python的Pandas读取Excel相邻单元格构建站点邻接表图结构

解决方案:用Pandas处理Excel数据构建邻接表

步骤1:读取完整的目标列数据

首先需要读取Excel中的B、C、D三列(对应起始站点、关联站点、行程时间),并给列命名提升代码可读性:

import pandas as pd

# 读取B、C、D三列数据
df = pd.read_excel(r'myfile.xlsx', usecols="B:D")
# 重命名列,方便后续操作
df.columns = ["node1", "node2", "weight"]

步骤2:过滤无效数据

只保留关联站点不为空的行,同时确保行程时间为整数类型:

# 过滤掉关联站点为空的无效行
df = df.dropna(subset=["node2"])
# 将行程时间转为整数,匹配需求中的数据格式
df["weight"] = df["weight"].astype(int)

步骤3:构建节点集并添加边到图中

注意:仅从B列提取节点可能遗漏C列中存在的站点,因此需要合并B、C列的所有站点作为完整节点集,再遍历每行数据调用add_edge:

# 提取所有站点作为图的节点集合
nodes = set(df["node1"].tolist() + df["node2"].tolist())
# 初始化图实例
g = Graph(nodes)

# 遍历每行数据,向邻接表添加边
for _, row in df.iterrows():
    g.add_edge(row["node1"], row["node2"], row["weight"])

# 打印验证图结构
g.print_graph()

补充说明

  • 用Pandas的dropna过滤空行,比手动循环检查单元格更高效简洁
  • 合并B、C列站点作为节点集,避免出现“节点不存在于邻接表”的异常
  • 若你的Excel表头本身有明确名称,可跳过df.columns重命名步骤,直接使用原始列名操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:10:36