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

如何通过Python获取DataFrame中特定值对应的行名和列名

实现方案

完全可以获取DataFrame中特定值对应的行名和列名,以下是可直接运行的实现方式:

方法1:使用stack()(写法最简洁)

利用布尔筛选先把不等于目标值的位置置为空值,再通过stack()过滤掉空值,剩余的索引就是匹配到的行列名组合:

import pandas as pd

# 构建示例DataFrame
dataframe = pd.DataFrame(
    [[0,5,2,1,3],[5,0,4,6,7],[2,4,0,8,9],[1,6,8,0,3],[3,7,9,3,0]], 
    columns=["A","B","C","D","E"], 
    index=["A","B","C","D","E"]
)

target = 1
# 提取匹配结果
match_pairs = dataframe[dataframe == target].stack().index.tolist()

运行后match_pairs的输出为[('A', 'D'), ('D', 'A')],每个元组的第一个元素是行名,第二个元素是列名,和预期结果完全一致。

方法2:使用numpy.where(适合大数据量场景,性能更好)

通过numpy的位置索引直接定位匹配值的坐标,再映射回DataFrame的行、列名:

import numpy as np

row_pos, col_pos = np.where(dataframe == target)
match_pairs = list(zip(dataframe.index[row_pos], dataframe.columns[col_pos]))

该方法得到的结果和方法1完全一致,当DataFrame体量较大时运行速度更快。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:31:14