Numpy / pandas元素在运算符中

时间:2014-08-13 22:10:34

标签: python numpy pandas

我有一个列A的数组(或者更确切地说是pandas帧),这列中的值是整数(假设它们属于范围1..10)。

现在我必须在这个数组中选择A{3, 6, 9}值的行(在这个例子中,可以只进行==次操作,但在现实生活中,此设置为更长的时间。

两个库(pandasnumpy)中是否有任何功能允许我快速执行以下操作:

arr = pandas.DataFrame(...)
values = [3, 6, 9] 
valid_indexes = magic_function(arr.A, values)

或在numpy:

arr = np.ndarray(...)
values = [3, 6, 9] 
valid_indexes = magic_function(arr[13, :], values)

换句话说,我正在寻找元素明智的in运算符。

2 个答案:

答案 0 :(得分:5)

文档是here

arr.loc[arr.A.isin([3,6,9])]

答案 1 :(得分:4)

从NumPy您可以使用numpy.in1d功能:

import numpy as np
arr = np.array([5, 10, 13, 7, 2, 2, 4, 18, 9, 3, 1], dtype=np.int32)
values = np.array([10, 2, 9])
valid_indexes = np.in1d(arr, values)

http://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html