Pandas: получить индекс строк, столбец которых соответствует значению
Вы можете использовать следующий синтаксис, чтобы получить индекс строк в DataFrame pandas, столбец которого соответствует определенным значениям:
df. index [df[' column_name ']== value ]. tolist ()
В следующих примерах показано, как использовать этот синтаксис на практике со следующим DataFrame pandas:
import pandas as pd #createDataFrame 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 to 5 11 1 to 7 8 2 to 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