python - 返回使用理解列出列对的数据框
问题描述
我从一个与此类似的相关矩阵 DataFrame 开始:
x y z
x 1.0 0.4 0.25
y 0.2 1.0 -0.44
z -0.3 -0.3 1.0
我想知道如何创建一个新的 DataFrame,它将存储所有列对及其相应的相关值,例如:['Column name1'、'Column name2'、'Correlation value']。
示例行:[x, y, 0.2]
有没有办法通过理解来做到这一点,同时还确保没有包含两次,并且排除了等于 1 的相关对?
就像是[[x, y, df.loc[x,y]] for x in df.columns for y in df.columns
解决方案
使用pd.DataFrame.unstack
和reset_index
:
print(df)
x y z
x 1.0 0.4 0.25
y 0.2 1.0 -0.44
z -0.3 -0.3 1.00
df.unstack().reset_index()
level_0 level_1 0
0 x x 1.00
1 x y 0.20
2 x z -0.30
3 y x 0.40
4 y y 1.00
5 y z -0.30
6 z x 0.25
7 z y -0.44
8 z z 1.00
推荐阅读
- c# - 仅当对象属性为 true 时才绑定 DataGridColumn
- node.js - 环回中日期和时间的数据类型是什么
- c# - WCF REST JSON 返回动态列表
- javascript - 动态创建的卡片是垂直排列的,应该是水平的
- arrays - 如何将数组列表显示到选择器中?
- javascript - Rails 和 React - React.createClass / React.createReactClass 不是函数
- c# - 通过 VM 标志按需创建 WPF 视图元素的有效方法
- javascript - 滚动垂直idangero.us移动设备
- file - 文件或文件夹的名词是什么?
- php - Google Drive API 请求编辑文件的权限 (PHP)