You need to enable JavaScript to run this app. pandas DataFrame如何根据指定列值提取对应列的匹配数值
优惠活动
大模型
产品
解决方案
定价
更多

pandas DataFrame如何根据指定列值提取对应列的匹配数值

实现方案

你可以通过以下两种方式实现需求,分别适配不同的数据规模:

  • 小数据量(写法简单易读):
    用apply逐行取值,代码逻辑直观,适合行数不多的场景:
    import pandas as pd
    
    # 构造示例DataFrame
    fruits = pd.DataFrame({
        "apple": [1, 1.5, 2], 
        "cherry": [2, 3, 1],
        "banana": [2, 4, 5], 
        "prices": ["apple", "banana", "cherry"]
    })
    
    # 新增price_fruits列
    fruits['price_fruits'] = fruits.apply(lambda row: row[row['prices']], axis=1)
    
  • 大数据量(性能更高):
    用numpy高级索引避免逐行循环的开销,处理十万级以上行数时效率提升明显:
    fruits['price_fruits'] = fruits.to_numpy()[
        fruits.index, 
        fruits.columns.get_indexer(fruits['prices'])
    ]
    

运行后输出的fruits结构和你给出的预期结果完全一致:

applecherrybananapricesprice_fruits
01.022apple1
11.534banana4
22.015cherry1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 06:15:09