当前位置:  开发笔记 > 编程语言 > 正文

在对角线以下的熊猫df中获取值

如何解决《在对角线以下的熊猫df中获取值》经验,为你挑选了1个好方法。

我有一个矩阵数据帧,我想得到对角线上的后半部分的值(所以下面的例子中的1下面的所有内容).我希望结果是一个新的数据框,其中一列列出了所有这些值,但我不确定如何解决这个问题.

缩短版我的df:

Word    toxin    sloppy  grief
toxin   1       -0.03    -0.06
sloppy  -0.03    1       0.09
grief   -0.06    0.09    1

理想的df:

Column
-0.03
-0.06
0.09

很感谢任何形式的帮助!



1> unutbu..:

您可以使用np.tril_indices获取下三角形元素的索引.然后使用NumPy索引(例如values[np.tril_indices(...)])在数组中获取这些值:

import numpy as np
import pandas as pd

df = pd.DataFrame({'Word': ['toxin', 'sloppy', 'grief'],
 'grief': [-0.059999999999999998, 0.089999999999999997, 1.0],
 'sloppy': [-0.029999999999999999, 1.0, 0.089999999999999997],
 'toxin': [1.0, -0.029999999999999999, -0.059999999999999998]})


values = df[df['Word']].values
lower_triangular = values[np.tril_indices(values.shape[0], -1)]
print(pd.DataFrame({'Column': lower_triangular})

产量

   Column
0   -0.03
1   -0.06
2    0.09

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有