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

如何用Pandas的loc方法替代lookup实现类Zip式选择?

用loc实现DataFrame类Zip式选择的替代方案

针对df.lookup()被弃用的情况,有两种常用方法用loc实现相同的配对取值逻辑:

方法1:遍历行-列配对组合

直接用zip()把行标签和列标签一一配对,通过列表推导式遍历获取每个位置的值:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({'a': [10, 20, 30], 'b': [40, 50, 60]}, index=['one', 'two', 'three'])

rows = ["one", "two"]
cols = ["a", "b"]

# 生成配对取值结果
result = [df.loc[row, col] for row, col in zip(rows, cols)]
# 输出:[10, 50]

方法2:利用numpy对角线提取

先通过loc选取对应的行和列组成子DataFrame,再用np.diag()提取对角线元素(正好对应行-列的配对值):

import numpy as np

# 先获取子DataFrame
subset = df.loc[rows, cols]
# 提取对角线值
result = np.diag(subset)
# 输出:array([10, 50])

两种方法都能完全替代df.lookup(rows, cols)的功能,返回的结果格式略有不同(列表/数组),可根据需求转换。

内容的提问来源于stack exchange,提问作者P.Jo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:01:57