Python 使用Pandas查找两组数据之间的差异

Python 使用Pandas查找两组数据之间的差异,python,python-3.x,pandas,indexing,Python,Python 3.x,Pandas,Indexing,我有两个数组,每个数组由数百个不同的值组成 列表1=[23.13,89.50,12.99,40.89,…] 清单2=[45.21,2.02,79.89,20.30,…] 我有一个单独的数组,表示我要从每个数组中比较的条目的索引(0表示两个数组中的第一个条目,434表示第435个条目,依此类推)。让我们调用这个数组 indx=[0,12,304,…] 我的目标是从索引列在indx中的两个列表中获取条目,减去值,然后将它们存储在另一个数组中。我想使用Pandas,因为我的大部分代码都使用了Panda

我有两个数组,每个数组由数百个不同的值组成

列表1=[23.13,89.50,12.99,40.89,…]

清单2=[45.21,2.02,79.89,20.30,…]

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

indx=[0,12,304,…]

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

如果你有

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]
nindx=indx[indx>>列表1[nindx]-列表2[nindx]

啊,我明白了。我唯一的问题(正如我应该提到的,对不起)是列表1和列表2的长度不一样,当我尝试这种方法时,我得到了一个错误。然后在
idx
中有大于一个列表的索引。发生这种情况时,您希望如何处理?我不确定。我想这可能是我的问题的根本原因。有没有办法忽略indx数组中的额外条目?