首页 > 解决方案 > 使用 Pandas 查找两组数据之间的差异

问题描述

我有两个数组,每个数组都包含数百个不同的值,可以说,

list1 = [23.13, 89.50, 12.99, 40.89,...]

list2 = [45.21, 2.02, 79.89, 20.30, ....]

我有一个单独的数组,表示我想从每个数组中比较的条目的索引(0 表示两个数组中的第一个条目,434 表示第 435 个条目,依此类推)。让我们调用这个数组

指数 = [0, 12, 304, ...]

我的目标是从两个列表中获取索引在 indx 中列出的条目,减去这些值,然后将它们存储在另一个数组中。我想使用 Pandas,因为我的大部分代码都使用了 pandas。谢谢你。

标签: pythonpython-3.xpandasindexing

解决方案


如果你有

list1 = np.array([23.13, 89.50, 12.99, 40.89])
list2 = np.array([45.21, 2.02 , 79.89, 20.30])

indx = [0, 2, 3]

然后简单

>>> list1[indx] - list2[indx]
array([-22.08, -66.9 ,  20.59])

同样,如果你有pd.Series而不是np.array

pd.Series(list1)[indx] - pd.Series(list2)[indx]

0   -22.08
2   -66.90
3    20.59
dtype: float64

对于不对称长度,

nindx = indx[indx < min(map(len, [list1, list2]))]
>>> list1[nindx] - list2[nindx]

推荐阅读