You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中获取符合过滤条件的单元格索引(含皮尔逊相关DataFrame场景)

获取DataFrame中满足条件的单元格索引

我来帮你搞定这个需求!不管是处理你给出的示例数据,还是实际场景中的皮尔逊相关系数矩阵,用Pandas都能轻松拿到符合条件的单元格索引,下面分两种常用场景给你演示:

一、获取整数位置索引(比如示例中的(0,0)格式)

如果你需要的是类似行列下标数字的索引,可以用numpy.where()来快速定位:

首先先构建你的示例DataFrame:

import pandas as pd
import numpy as np

# 构建示例相关系数矩阵
data = {
    'A': [1, 0.7, 0.9],
    'B': [0.7, 1, 0.3],
    'C': [0.9, 0.3, 1]
}
df = pd.DataFrame(data, index=['A', 'B', 'C'])

然后执行过滤和索引提取:

# 设定过滤条件:相关系数 >= 0.9
condition = df >= 0.9

# 获取满足条件的行、列整数索引
rows, cols = np.where(condition)

# 转换成你需要的元组列表格式
result_indices = list(zip(rows, cols))
print(result_indices)
# 输出结果:[(0, 0), (0, 2), (1, 1), (2, 0), (2, 2)]

二、获取带标签的索引(比如('A','A')格式)

如果你的皮尔逊系数矩阵用了有意义的行列标签,想要保留这些标签而不是数字下标,可以用stack()方法:

# 堆叠DataFrame并筛选满足条件的项
filtered_items = df.stack()[df.stack() >= 0.9]

# 直接提取索引对
labeled_indices = list(filtered_items.index)
print(labeled_indices)
# 输出结果:[('A', 'A'), ('A', 'C'), ('B', 'B'), ('C', 'A'), ('C', 'C')]

适配皮尔逊相关系数场景

这个逻辑完全可以直接迁移到你的皮尔逊相关系数DataFrame上——只需要把上面代码里的df换成你的相关系数矩阵变量,修改过滤条件(比如>0.9)就能得到你想要的结果啦。

内容的提问来源于stack exchange,提问作者Matrucci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 06:17:33