Pandas: получить индекс строк, столбец которых соответствует значению


Вы можете использовать следующий синтаксис, чтобы получить индекс строк в pandas DataFrame, столбец которого соответствует определенным значениям:

df.index [df['column_name']== value ]. tolist ()

В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'],
 'points': [5, 7, 7, 9, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

team points rebounds
0 A 5 11
1 A 7 8
2 A 7 10
3 B 9 6
4 B 12 6
5 C 9 5
6 C 9 9
7 D 4 12

Пример 1. Получение индекса строк, столбец которых соответствует значению

В следующем коде показано, как получить индекс строк, в которых один столбец равен определенному значению:

#get index of rows where 'points' column is equal to 7
df.index [df['points']== 7 ]. tolist ()

[1, 2]

Это говорит нам о том, что строки со значениями индекса 1 и 2 имеют значение «7» в столбце точек.

Обратите внимание, что мы также можем использовать операторы «меньше» и «больше», чтобы найти индекс строк, в которых один столбец меньше или больше определенного значения:

#get index of rows where 'points' column is greater than 7
df.index [df['points']> 7 ]. tolist ()

[3, 4, 5, 6]

Это говорит нам о том, что строки со значениями индекса 3 , 4 , 5 и 6 имеют значение больше 7 в столбце точек.

Пример 2. Получение индекса строк, столбец которых соответствует строке

В следующем коде показано, как получить индекс строк, в которых один столбец равен определенной строке:

#get index of rows where 'team' column is equal to 'B'
df.index [df['team']=='B']. tolist ()

[3, 4]

Это говорит нам о том, что строки со значениями индекса 3 и 4 имеют значение «B» в столбце команды.

Пример 3. Получение индекса строк с несколькими условиями

В следующем коде показано, как получить индекс строк, в которых значения в нескольких столбцах соответствуют определенным условиям:

#get index of rows where 'points' is equal to 7 *or* 12
df.index [(df['points']== 7 ) |(df['points']== 12 )]. tolist ()

[1, 2, 4]

#get index of rows where 'points' is equal to 9 *and* 'team' is equal to 'B'
df.index [(df['points']== 9 ) &(df['team']=='B')]. tolist ()

[3]

Дополнительные ресурсы

Как получить значение ячейки из Pandas DataFrame
Как переименовать индекс в Pandas DataFrame
Как сортировать столбцы по имени в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.