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

已知100行10列DataFrame中A列值,如何获取同行B列值?

正确实现方法

你报错的原因是:df["column A"].index("value") 写法错误——Pandas的Series对象没有index()方法(这是Python列表的专属方法),Series的index属性是用于获取行索引标签,而非查找值的位置。

下面是几种可行的实现方式:

方法1:布尔索引(最直观)

直接筛选出A列等于目标值的行,再提取对应的B列值:

# 获取所有匹配行的B列值(返回Series类型)
result = df.loc[df["column A"] == "value", "column B"]

# 若确定只有一个匹配值,可直接获取标量结果
result_scalar = df.loc[df["column A"] == "value", "column B"].iloc[0]

方法2:先找索引再取值

先定位目标值所在行的索引,再通过索引提取B列:

# 获取第一个匹配值的行索引
idx = df[df["column A"] == "value"].index[0]
# 通过索引获取对应B列值
result = df.loc[idx, "column B"]

也可以用eq()配合idxmax()快速定位第一个匹配的索引:

idx = df["column A"].eq("value").idxmax()
result = df.loc[idx, "column B"]

方法3:使用query()方法(语法更简洁)

# 获取所有匹配的B列值
result = df.query('`column A` == "value"')["column B"]
# 提取第一个匹配的标量值
result_scalar = df.query('`column A` == "value"')["column B"].iloc[0]

注意:如果A列存在多个相同的目标值,带.iloc[0]的写法会仅返回第一个匹配结果,不带的则会返回所有匹配的B列值组成的Series。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:45:33