Как получить номера строк в кадре данных 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

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