Pandas在数组中找到子数组的索引

时间:2014-07-17 13:03:29

标签: python numpy pandas

我有阵列

a = numpy.array([1,3,5,7])
b = pandas.Series([1,2,3,4,5,6,7,8,9])

是否有快速命令来查找b中包含a中值的所有匹配索引?例如

a in b = [0,2,4,6]

2 个答案:

答案 0 :(得分:2)

您可以使用isin查找类似数组的对象中存在的值(也适用于列表):

In [14]:

a = np.array([1,3,5,7])
b = pd.Series([1,2,3,4,5,6,7,8,9])
# call .index if you are just interested in the index values
b[b.isin(a)].index
Out[14]:
Int64Index([0, 2, 4, 6], dtype='int64')

如果不访问.index属性,则会返回一系列文字:

In [15]:

b[b.isin(a)]
Out[15]:
0    1
2    3
4    5
6    7
dtype: int64

答案 1 :(得分:2)

您可以使用numpy' in1d

>>> np.nonzero(np.in1d(b, a))[0]
array([0, 2, 4, 6], dtype=int64)