Как получить номера строк в dataframe pandas


Часто вам может потребоваться получить номера строк в DataFrame pandas, которые содержат определенное значение.

К счастью, это легко сделать с помощью функции .index .

В этом уроке показано несколько примеров практического использования этой функции.

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

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

 import pandas as pd

#createDataFrame
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)

        team assists points
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. Получите уникальный номер строки

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

 import pandas as pd

#createDataFrame
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: Получить сумму номеров строк

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

 import pandas as pd

#createDataFrame
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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *