Return 通过提供另外两个列表从数组中获取一个列表

Return a list from an array by providing two more lists

我有这样一个数据框:

         a     b    c
 2    100.0   0.0  0.0
 23   200.0   1.0  0.0
 44   300.0   2.0  0.0
 65   400.0   3.0  0.0
 86   500.0   4.0  0.0
 107  600.0   5.0 -0.5
 128  700.0   6.0  0.0
 149  800.0   7.0  0.0
 170  900.0   8.0  0.0

我想为给定的 a 和 b 列表找到 c 中的对应值。 例如,给定 a = [100.0, 600.0, 200.0] 和 b = [0.0, 5.0, 1.0] 我想要 c = [0.0, -0.5, 0.0].

我发现一个有趣的 link(见下文)但它仅适用于独特的一对数据,例如 (100.0, 0.0) 而不适用于数据列表。我不想做一个循环(这在计算上会很昂贵)。

Link :

有人可以帮我解决这个问题吗?

试试这个,创建一个 pd.MultiIndex 然后使用压缩列表的 reindex 生成元组列表:

df.set_index(['a', 'b']).reindex(list(zip(a, b)))['c'].tolist()

输出:

[0.0, -0.5, 0.0]