Оператор `in` не работает должным образом при проверке, содержит ли серия панд заданное значение

Это возможно с амперсандом в SASS:

h3
  font-size: 20px
  margin-bottom: 10px
  .some-parent-selector &
    font-size: 24px
    margin-bottom: 20px

вывод CSS:

h3 {
  font-size: 20px;
  margin-bottom: 10px;
}
.some-parent-selector h3 {
  font-size: 24px;
  margin-bottom: 20px;
}
1
задан cs95 28 March 2019 в 04:58
поделиться

1 ответ

j in zar будет сравнивать j с каждым элементом индекса zar .

Например,

0 in zar
# True

0 in zar.index
# True

Это также согласуется с поведением фреймов данных, для которых in по умолчанию выполняет тест членства для столбцов.

df = pd.DataFrame(columns=['a', 'b', 'c'])
'a' in df
# True

'd' in df
# False

Вам понадобится Series.eq (оператор ==) или Series.isin вместе с Series.any.

(zar == j).any()

Подробности
zar == j возвращает серию bools:

(zar == j)

0    False
1    False
2    False
3    False
4    False
5     True
6    False
7    False
8    False
9    False
Name: zar, dtype: bool

Затем вызывается any, который возвращает True, если Любой из рядов верен. Если вы хотите индекс значения True, используйте np.flatnonzero:

np.flatnonzero(zar == j)
# array([5])
0
ответ дан cs95 28 March 2019 в 04:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: