Як вибрати рядки за індексом у 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

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

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