Як отримати номери рядків у pandas dataframe
Часто ви можете отримати номери рядків у pandas DataFrame, які містять певне значення.
На щастя, це легко зробити за допомогою функції .index .
Цей підручник демонструє кілька прикладів практичного використання цієї функції.
Приклад 1: отримати номери рядків, які відповідають певному значенню
Припустімо, що у нас є наступні pandas DataFrame:
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: отримати унікальний номер рядка
Припустімо, що у нас є наступні pandas DataFrame:
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: Отримати суму номерів рядків
Припустімо, що у нас є наступні pandas DataFrame:
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
Як відфільтрувати Pandas DataFrame за кількома умовами
Як підрахувати відсутні значення в Pandas DataFrame