Як вибрати рядки за індексом у pandas dataframe
Часто вам може знадобитися вибрати рядки в pandas DataFrame на основі їх значення індексу.
Якщо ви хочете вибрати рядки на основі цілочисельного індексування, ви можете скористатися функцією .iloc .
Якщо ви хочете вибрати рядки на основі індексування міток, ви можете скористатися функцією .loc .
Цей підручник надає приклад використання кожної з цих функцій на практиці.
Приклад 1: вибір рядків на основі цілочисельного індексування
Наступний код показує, як створити pandas DataFrame і використовувати .iloc для вибору рядка з цілим значенням індексу 4 :
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (0) #createDataFrame df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B ']) #view DataFrame df A B 0 0.548814 0.715189 3 0.602763 0.544883 6 0.423655 0.645894 9 0.437587 0.891773 12 0.963663 0.383442 15 0.791725 0.528895 #select the 5th row of the DataFrame df. iloc [[4]] A B 12 0.963663 0.383442
Ми можемо використовувати аналогічний синтаксис для вибору кількох рядків:
#select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [[2, 3, 4]]
A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
Або ми можемо вибрати всі рядки в діапазоні:
#select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [2:5]
A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
Приклад 2: вибір рядків на основі індексації міток
Наступний код показує, як створити pandas DataFrame і використовувати .loc для вибору рядка з індексною міткою 3 :
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (0) #createDataFrame df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B ']) #view DataFrame df A B 0 0.548814 0.715189 3 0.602763 0.544883 6 0.423655 0.645894 9 0.437587 0.891773 12 0.963663 0.383442 15 0.791725 0.528895 #select the row with index label '3' df. loc [[3]] A B 3 0.602763 0.544883
Ми можемо використовувати аналогічний синтаксис для вибору кількох рядків з різними мітками індексу:
#select the rows with index labels '3', '6', and '9'
df. loc [[3, 6, 9]]
A B
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
Різниця між .iloc і .loc
Наведені вище приклади ілюструють тонку різницю між .iloc і .loc :
- .iloc вибирає рядки на основі цілого індексу . Отже, якщо ви хочете вибрати 5-й рядок DataFrame, ви повинні використовувати df.iloc[[4]], оскільки перший рядок має індекс 0, другий рядок має індекс 1 і так далі.
- .loc вибирає рядки на основі позначеного індексу . Отже, якщо ви хочете вибрати рядок із міткою індексу 5, ви безпосередньо використаєте df.loc[[5]].
Додаткові ресурси
Як отримати номери рядків у Pandas DataFrame
Як видалити рядки зі значеннями NaN в Pandas
Як видалити стовпець індексу в Pandas