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

如何在Python中将距离矩阵对导出为.xlsx/.csv列格式?

解决方法:将距离矩阵转换为长格式并导出

你可以利用Pandas的内置方法快速将宽格式的距离矩阵转换为所需的长格式,具体步骤如下:

1. 转换矩阵格式

在生成output数据框后,执行以下代码完成格式转换:

# 将宽格式矩阵转为长格式,重置索引并重命名列
long_format = output.stack().reset_index()
long_format.columns = ['source_id', 'target_id', 'distance']

这段代码会自动将原矩阵的行索引作为source_id、列名作为target_id,对应位置的距离值作为distance,完全匹配你需要的三列格式。

2. 导出为文件

格式转换完成后,直接导出为CSV或Excel文件即可:

# 导出为CSV文件
long_format.to_csv('distance_pairs.csv', index=False)

# 导出为Excel文件(需提前安装openpyxl库:pip install openpyxl)
long_format.to_excel('distance_pairs.xlsx', index=False)

完整示例代码

结合你原有的代码,完整流程如下:

from sklearn.metrics import DistanceMetric
import pandas as pd

# 生成距离矩阵(你的原有代码)
dist = DistanceMetric.get_metric('haversine')
output = pd.DataFrame(
    dist.pairwise(df[['latitude', 'longitude']].to_numpy())*6367.45,
    columns=df.id.unique(),
    index=df.id.unique()
)

# 转换为长格式
long_format = output.stack().reset_index()
long_format.columns = ['source_id', 'target_id', 'distance']

# 导出文件
long_format.to_csv('distance_pairs.csv', index=False)
# long_format.to_excel('distance_pairs.xlsx', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:33:27