1
Каков наилучший способ передать несколько критериев, любые из которых действительны, в массив и вернуть булевский индекс, чем тогда можно использовать в качестве фильтра? Доступные решения следуют за if, then framework, который больше, чем мне нужно.Множество критериев для булевых индексирования
Я понимаю, что я могу сделать следующее:
In[1]:
names = np.array(['Bob','Joe','Bob','Will'])
data = np.random.randn(4,4)
mask = (names=='Bob')|(names=='Will')
data[mask]
Out[1]:
array([[-0.25883247, -0.06236544, -0.02296274, 1.36340923],
[ 0.3907503 , -2.38917418, -0.49057852, -0.25427256],
[ 0.02648891, -1.27278901, -0.31815915, 1.72876199]])
Но что, если у меня было 100 имен, чтобы проверить, а не 2?
Это полезно, но я ошибочно предположил, что это будет работать для серии панд в то же время сохраняя значения индекса этой серии. Это не так. Есть ли другое решение? – trob
Если у вас есть серия pandas, эквивалентная версия - это метод isin. Итак, 'names.isin (['Bob', 'Will']). – Psidom