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

如何更快地根据给定值获取pandas DataFrame对应的列?

快速根据值查找所属列的优化方案

因为你的DataFrame规模很小(21行16列),提前构建值到列名的映射字典是最适合的优化方式——一次构建完成后,后续每次查询都是O(1)的时间复杂度,比你原来每次都遍历整个DataFrame的方法快得多。

具体实现步骤

  1. 提前构建映射字典
    遍历DataFrame的每一列,把非空值和对应的列名存入字典:

    # 假设你的DataFrame名为df
    value_to_col = {}
    for col in df.columns:
        # 过滤掉NaN值,遍历列内的每个有效值
        for val in df[col].dropna():
            value_to_col[val] = col
    

    或者用更简洁的字典推导式:

    value_to_col = {val: col for col in df.columns for val in df[col].dropna()}
    
  2. 快速查询函数
    直接通过字典的get方法取值,还能处理值不存在的情况:

    def get_column(val):
        # 若值不存在,返回None(可根据需求修改默认返回值)
        return value_to_col.get(val, None)
    

效果示例

用你提供的DataFrame测试:

  • 输入get_column("Cell 6"),返回Column B
  • 输入get_column("Cell 10"),返回Column C
  • 输入不存在的值,返回None

这种方式的优势在于,字典构建只需要执行一次,之后不管查询多少次,都是直接键值对查找,完全避免了原来方法中每次查询都要做的布尔索引、stack、索引提取等耗时操作,多次迭代下速度提升非常明显。

内容的提问来源于stack exchange,提问作者Ruan Carlo Weiers Britzke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:10:35