首页 > 解决方案 > 在 Python 中将宽矩阵转换为长矩阵

问题描述

我有一个看起来像这样的 Pandas 数据框:

纽约市 乔治亚州 伦敦
纽约市 0 590 3200
乔治亚州 590 0 3190
伦敦 3200 3190 0

我一直在尝试用 Python 做很多事情来把它变成这样的表格:

距离
纽约市 纽约市 0
纽约市 乔治亚州 590
纽约市 伦敦 3200
乔治亚州 纽约市 590
乔治亚州 乔治亚州 0
乔治亚州 伦敦 3190
伦敦 纽约市 3200
伦敦 乔治亚州 3190
伦敦 伦敦 0

我可以从哪里开始解决这个问题?我做了很多工作,只是在上面创建了这些表。

标签: python

解决方案


假设您正在处理 Pandas DataFrame,那么关键是使用stack()

>>> df.stack().reset_index().set_axis('From To Distance'.split(), axis=1)
      From       To  Distance
0      NYC      NYC         0
1      NYC  Georgia       590
2      NYC   London      3200
3  Georgia      NYC       590
4  Georgia  Georgia         0
5  Georgia   London      3190
6   London      NYC      3200
7   London  Georgia      3190
8   London   London         0

推荐阅读