Pandas: отримати індекс рядків, стовпець яких відповідає значенню


Ви можете використовувати наступний синтаксис, щоб отримати індекс рядків у pandas DataFrame, стовпець якого відповідає певним значенням:

 df. index [df[' column_name ']== value ]. tolist ()

Наступні приклади показують, як використовувати цей синтаксис на практиці з наступними pandas DataFrame:

 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *