Что я хочу делать, но argmax
дает мне первое значение, которое True
:`Pandas argmax`, чтобы получить все индексы` True` после маскировки (Python 3) (например, (pd.Series> 0) .argmax()))
Se = pd.Series(np.arange(6), index=list("abcdef"))
#a 0
#b 1
#c 2
#d 3
#e 4
#f 5
#dtype: int64
mask = (Se % 2 == 0)
#a True
#b False
#c True
#d False
#e True
#f False
#dtype: bool
mask.argmax()
#'a'
Что я должен делать вместо этого:
Se[mask].index
# Index(['a', 'c', 'e'], dtype='object')
Это не слишком неудобно, но я должен создать экземпляр Series
первым, который уменьшает мою производительность. Было бы хорошо, чтобы быть в состоянии сделать это:
(pd.Series(np.arange(6), index=list("abcdef")) % 2 == 0).argmax()
Мой вопрос: Как я могу это сделать с помощью argmax
? Если этого не может быть сделано w/argmax
, могу ли я сделать это с другой функцией в pandas
?
Это то, что вы хотите: 'Se.index [(Se% 2 == 0)]' или вам нужно сделать это «цепным» способом? – MaxU