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

如何基于单元格值而非列标签获取DataFrame的列索引

获取DataFrame指定行中特定值的列索引

先看你给出的DataFrame:

import pandas as pd
df = pd.DataFrame([["a", "b", "c"], ["d", "e", "f"],["g", "h", "i"]])

这里有几种简单的方法可以获取第0行中值为"c"的列索引:

  • 方法1:布尔筛选直接定位
    先取出第0行的Series,通过布尔条件筛选出值为"c"的列,再提取对应的索引:
col_index = df.columns[df.loc[0] == "c"][0]
print(col_index)  # 输出:2

逻辑:df.loc[0] == "c"会生成一个布尔Series,标记第0行中每个值是否等于"c";df.columns[]用这个布尔Series过滤出符合条件的列索引,最后取第一个元素(因为这里只有一个匹配项)。

  • 方法2:用where+dropna定位
    通过where保留目标值,dropna去掉空值,再取索引:
col_index = df.loc[0].where(df.loc[0] == "c").dropna().index[0]
  • 方法3:借助numpy快速查找
    利用numpy的数组查找功能,直接定位值的位置:
import numpy as np
col_index = np.argwhere(df.loc[0].values == "c")[0][0]

逻辑:df.loc[0].values把第0行转成numpy数组,np.argwhere找出等于"c"的元素位置,最后提取对应的列索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:20:20