python - 在 Python 中将宽矩阵转换为长矩阵
问题描述
我有一个看起来像这样的 Pandas 数据框:
纽约市 | 乔治亚州 | 伦敦 | |
---|---|---|---|
纽约市 | 0 | 590 | 3200 |
乔治亚州 | 590 | 0 | 3190 |
伦敦 | 3200 | 3190 | 0 |
我一直在尝试用 Python 做很多事情来把它变成这样的表格:
从 | 至 | 距离 |
---|---|---|
纽约市 | 纽约市 | 0 |
纽约市 | 乔治亚州 | 590 |
纽约市 | 伦敦 | 3200 |
乔治亚州 | 纽约市 | 590 |
乔治亚州 | 乔治亚州 | 0 |
乔治亚州 | 伦敦 | 3190 |
伦敦 | 纽约市 | 3200 |
伦敦 | 乔治亚州 | 3190 |
伦敦 | 伦敦 | 0 |
我可以从哪里开始解决这个问题?我做了很多工作,只是在上面创建了这些表。
解决方案
假设您正在处理 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
推荐阅读
- python - 有没有办法通过 Python 删除所有行中的某些特定单词?
- python - 高斯过程wrt特征的偏导数
- c++ - coverage for enable_if template class functions in C++
- angular - 反应式表单验证器在后退按钮(浏览器)上不起作用 - 角度
- python - Python-Tkinter 多条目小部件计算错误
- node.js - Uncaught ReferenceError: module is not defined at index.js:1 lodash中的错误
- python - VGG16 网络验证准确度
- python - 带有数据框的键值
- sql - SQL Server 2019 - 添加日期和时间组件
- javascript - 我正在尝试用 JavaScript 编写 Discord 机器人,但遇到了问题