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

Pandas如何按条件返回符合要求的索引和列名组成的元组列表

实现方案

该需求可以通过两种常用方式实现:

方法1:pandas内置极简实现(无需额外依赖)

核心思路是利用布尔掩码过滤后堆叠数据,自动丢弃空值,直接获取多级索引转为列表即可,代码如下:

# 构造示例DataFrame
import pandas as pd
df = pd.DataFrame({
    'D': {'A': 0.810032, 'B': 0.752299, 'C': 0.224038},
    'E': {'A': 0.17714, 'B': 0.680405, 'C': 0.769732},
    'F': {'A': 0.942959, 'B': 0.436582, 'C': 0.269791}
})

# 核心逻辑:筛选小于0.25的位置,堆叠后取索引
result = list(df[df < 0.25].stack().index)
print(result)

运行输出:

[('A', 'E'), ('C', 'D')]

方法2:numpy坐标定位实现(大数据量性能更优)

核心思路是用np.where定位符合条件的行列下标,再匹配对应的索引名和列名,代码如下:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'D': {'A': 0.810032, 'B': 0.752299, 'C': 0.224038},
    'E': {'A': 0.17714, 'B': 0.680405, 'C': 0.769732},
    'F': {'A': 0.942959, 'B': 0.436582, 'C': 0.269791}
})

mask = df < 0.25
# 获取符合条件的行、列下标
row_idx, col_idx = np.where(mask)
# 映射为索引名和列名
result = list(zip(df.index[row_idx], df.columns[col_idx]))
print(result)

运行输出和上述方法一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:54:04