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

如何在Pandas DataFrame中查找指定元素对应的行号和列名

实现方案

方案1:使用numpy.where实现(性能最优,适合大数据量)

核心逻辑是先通过布尔掩码匹配所有值为False的位置,再将位置映射为行号和列名:

import pandas as pd
import numpy as np

# 示例DataFrame构造
df = pd.DataFrame({
    'A': [True, True, False],
    'B': [True, True, True],
    'C': [False, True, True]
})

# 匹配所有False值的位置坐标
row_idx, col_idx = np.where(df.eq(False))
# 组装为(行号, 列名)格式的结果
res = list(zip(row_idx, df.columns[col_idx]))
print(res)

运行输出:

[(0, 'C'), (2, 'A')]

方案2:Pandas原生stack实现(写法简洁,适合小数据量)

通过堆叠列转为多级索引Series后直接筛选,无需引入numpy依赖:

res = df.stack()[lambda x: ~x].index.tolist()
print(res)

运行输出和方案1完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:54:05