Используя логическое индексирование, мы можем попробовать что-то вроде
>>> df[df == 6.9]
Height_1 Height_2 Height_3
0 NaN NaN NaN
1 NaN 6.9 NaN
2 NaN NaN NaN
3 NaN NaN NaN
Однако это не обязательно даст вам точные строки и индексы столбцов данных, которые вы ищете. Если вы хотите получить строки и столбцы в явном виде, нам нужно проделать дополнительную работу.
>>> bool_df = df[df == 6.9]
>>> list(bool_df.stack().index)
[(1, 'Height_2')]
Что касается второго вопроса, мы можем использовать функцию count
в сочетании с логическим подходом, который мы использовали ранее.
>>> df[df == 6.2].count()
Height_1 1
Height_2 0
Height_3 1
dtype: int64
Для подсчета строк мы можем использовать аргумент axis
.
>>> df[df == 6.2].count(axis=1)
0 0
1 1
2 0
3 1
dtype: int64
Чтобы получить простое общее число вхождений определенного значения, мы можем использовать функцию NumPy '* sum
.
>>> np.sum(df[df == 6.2].count())
2