我有阵列
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]
答案 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)