Как получить номера строк в кадре данных Pandas


Часто вам может понадобиться получить номера строк в кадре данных pandas, которые содержат определенное значение. К счастью, это легко сделать с помощью функции .index.В этом руководстве показано несколько примеров использования этой функции на практике.

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

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
 'assists': [5, 7, 7, 9, 12],
 'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

#view DataFrame 
print(df)

 points assists team
0 25 5 Mavs
1 12 7 Mavs
2 15 7 Spurs
3 14 9 Celtics
4 19 12 Warriors

Мы можем использовать следующий синтаксис, чтобы получить номера строк, где «команда» равна Mavs:

#get row numbers where 'team' is equal to Mavs
df[df['team'] == 'Mavs']. index

Int64Index([0, 1], dtype='int64')

Мы видим, что имя команды равно 'Mavs' в строках с индексами 0 и 1 .

Мы также можем получить номера строк, в которых имя команды находится в определенном списке имен команд:

#get row numbers where 'team' is equal to Mavs or Spurs
filter_list = ['Mavs', 'Spurs']

#return only rows where team is in the list of team names
df[df.team.isin (filter_list)]. index

Int64Index([0, 1, 2], dtype='int64')

Мы видим, что название команды равно «Mavs» или «Spurs» в индексах строк 0 , 1 и 2 .

Пример 2: получение номера одной строки

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
 'assists': [5, 7, 7, 9, 12],
 'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

Если вы знаете, что только одна строка соответствует определенному значению, вы можете получить номер этой единственной строки, используя следующий синтаксис:

#get the row number where team is equal to Celtics
df[df['team'] == 'Celtics']. index [ 0 ]

3

Мы видим, что команда равна «Селтикс» в строке с номером 3 .

Пример 3: Получить сумму номеров строк

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
 'assists': [5, 7, 7, 9, 12],
 'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

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

#find total number of rows where team is equal to Mavs
len(df[df['team'] == 'Celtics']. index )

2

Мы видим, что команда равна «Mavs» всего в 2 строках.

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

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