Mam tablicę (lub raczej pandas ramki), która ma kolumnę A, wartości w tej kolumnach są liczbami całkowitymi (zakładajmy, że należą do zasięgu 1..10).

Teraz musiałbym wybrać wiersze w tej tablicy, które mają wartości A {3, 6, 9} (w tym przykładzie możliwe jest tylko operacje ==, ale w prawdziwym życiu ten zestaw był o wiele dłużej .

Czy istnieje dowolna funkcja w każdej bibliotece ({x0}} i numpy), która pozwala mi na szybki:

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

Lub w Numpy:

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

Innymi słowy, szukam elementu mądry in operatora.

4
jb. 14 sierpień 2014, 02:10

2 odpowiedzi

Najlepsza odpowiedź

Dokumenty są Oto

arr.loc[arr.A.isin([3,6,9])]
5
Jeff 13 sierpień 2014, 22:21

Od Numpy można użyć funkcji 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.

4
Joel Vroom 14 sierpień 2014, 00:48