Как определить, к какой строке и столбцу относится значение? - PullRequest
0 голосов
/ 23 апреля 2020

Предположим, я создал нижеприведенный фрейм данных

data = {'Height_1': [4.3,6.7,5.4,6.2], 
        'Height_2': [5.1, 6.9, 5.1, 5.2], 
        'Height_3': [4.9,6.2,6.5,6.4]}

df = pd.DataFrame(data) 

Предположим, кто-то пришел и спросил меня

  1. Найти строку и столбец высотой 6,9?
  2. Найти во сколько строк и столбцов высота 6,2 присутствует?

Пожалуйста, помогите мне с тем, что будет код для этого?

1 Ответ

0 голосов
/ 23 апреля 2020

Используя логическое индексирование, мы можем попробовать что-то вроде

>>> 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...