gpt4 book ai didi

python - pandas 查找具有条件的元素的行+列名称

转载 作者:行者123 更新时间:2023-11-28 22:20:06 25 4
gpt4 key购买 nike

我有一个 pandas 相关数据框。我正在搜索数据框以查找大于阈值 0.5 的相关性,然后返回与条件匹配的那些元素的列名和行名(均为字符串)。

目前,我可以将相关矩阵转换为大于阈值的值,然后所有其他值都是NaN,使用这个:

相关性[np.abs(correlations) > 0.5]

现在我有了这个与我的查询和 NaN 相匹配的数字矩阵,我如何获取每个值不是 NaN 的元素的行+列名称?

最佳答案

我相信您需要由 boolean indexing 创建的 Seriesstack,然后 rename_axis 用于新列名称,而 reset_index 用于 MultiIndex 中的列:

np.random.seed(456) 

correlations = pd.DataFrame(np.random.rand(5,3), columns=list('ABC'))
print (correlations)
A B C
0 0.248756 0.163067 0.783643
1 0.808523 0.625628 0.604114
2 0.885702 0.759117 0.181105
3 0.150169 0.435679 0.385273
4 0.575710 0.146091 0.686593

s = correlations.stack()
df = s[np.abs(s) > 0.5].rename_axis(('idx','col')).reset_index(name='val')
print (df)
idx col val
0 0 C 0.783643
1 1 A 0.808523
2 1 B 0.625628
3 1 C 0.604114
4 2 A 0.885702
5 2 B 0.759117
6 4 A 0.575710
7 4 C 0.686593

详细信息:

print (s)
0 A 0.248756
B 0.163067
C 0.783643
1 A 0.808523
B 0.625628
C 0.604114
2 A 0.885702
B 0.759117
C 0.181105
3 A 0.150169
B 0.435679
C 0.385273
4 A 0.575710
B 0.146091
C 0.686593
dtype: float64

关于python - pandas 查找具有条件的元素的行+列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49213699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com