我有一个列A
的数组(或者更确切地说是pandas帧),这列中的值是整数(假设它们属于范围1..10)。
现在我必须在这个数组中选择A
个{3, 6, 9}
值的行(在这个例子中,可以只进行==
次操作,但在现实生活中,此设置为更长的时间。
两个库(pandas
或numpy
)中是否有任何功能允许我快速执行以下操作:
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
运算符。
答案 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