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

如何使用循环按条件提取DataFrame另一列的匹配值

提取DataFrame中role为lead对应empid的实现方法

你可以通过两种方式实现需求,优先使用Pandas原生向量化操作,性能远高于手动遍历。

方法1:布尔索引(推荐,无需遍历)

这是Pandas官方推荐的标准写法,不需要手动遍历列:

import pandas as pd

# 构造示例DataFrame,你有现成的df可以跳过这步
df = pd.DataFrame({
    'empid': [123, 124, 125, 156, 129],
    'role': ['lead', 'lead', 'manager', 'lead', 'manager']
})

# 提取符合条件的empid,转为列表存储到变量中
lead_empids = df.loc[df['role'] == 'lead', 'empid'].tolist()

执行后lead_empids的结果为[123, 124, 156],如果不需要转列表、保留Series格式,去掉末尾的.tolist()即可。

方法2:遍历实现(仅特殊场景使用)

如果要求必须通过遍历role列的逻辑实现,可以用以下两种写法:

  • 写法1:通过iterrows遍历全表
lead_empids = []
for _, row in df.iterrows():
    if row['role'] == 'lead':
        lead_empids.append(row['empid'])
  • 写法2:直接遍历两列的值(性能优于iterrows)
lead_empids = []
for empid, role in zip(df['empid'], df['role']):
    if role == 'lead':
        lead_empids.append(empid)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:36:04