如何使用Python基于pandas数据借助pathpy构建动态可交互时序网络
基于pandas站点关联数据构建pathpy动态交互网络的方法
前置依赖导入
import pandas as pd import pathpy as pp
数据预处理
现有数据包含起止站点、日期、小时字段,首先需要生成统一的时间戳,方便pathpy识别时序关系:
# 直接用Day列作为时间戳即可实现按天切换网络的效果 df['timestamp'] = df['Day'] # 如果需要更细的小时粒度切换,可以用下面的计算方式生成连续时间戳 # df['timestamp'] = df['Day'] * 24 + df['Hour']
加载数据到pathpy时序网络对象
两种加载方式可按需选择:
- 批量加载(适合大数据量,效率更高)
t = pp.TemporalNetwork.from_edge_list(df[['Station_start', 'Station_end', 'timestamp']].values)
- 逐行加载(适合需要额外判断边属性的场景)
t = pp.TemporalNetwork() for _, row in df.iterrows(): t.add_edge( row['Station_start'], row['Station_end'], row['timestamp'] )
生成动态交互可视化
直接调用时序网络的plot方法即可生成带时间滑块的可交互页面,拖动滑块即可查看不同日期对应的网络连接关系:
t.plot( node_color="#2563eb", edge_color="#9ca3af", node_size=10 )
如果你需要单独查看某一天的静态网络,可先筛选对应日期的子集再构建Network对象即可:
day2_net = pp.Network.from_edge_list(df[df['Day']==2][['Station_start', 'Station_end']].values) day2_net.plot()
内容的提问来源于stack exchange,提问作者K C
相关产品推荐
相关产品推荐

