Pandas dataframe'de dizine göre satırlar nasıl seçilir


Genellikle bir pandanın DataFrame’indeki satırları indeks değerlerine göre seçmek isteyebilirsiniz.

Tamsayı indekslemeye dayalı satırları seçmek istiyorsanız .iloc işlevini kullanabilirsiniz.

Satırları etiket indekslemeye dayalı olarak seçmek istiyorsanız .loc işlevini kullanabilirsiniz.

Bu eğitimde, bu işlevlerin her birinin pratikte nasıl kullanılacağına dair bir örnek verilmektedir.

Örnek 1: Tamsayı indekslemeye dayalı olarak satırları seçin

Aşağıdaki kod, bir pandas DataFrame’in nasıl oluşturulacağını ve 4 tamsayı dizin değerine sahip satırı seçmek için .iloc’un nasıl kullanılacağını gösterir:

 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

Birden çok satırı seçmek için benzer sözdizimini kullanabiliriz:

 #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

Veya bir aralıktaki tüm satırları seçebiliriz:

 #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

Örnek 2: Etiket indekslemeye göre satırları seçin

Aşağıdaki kod, bir pandas DataFrame’in nasıl oluşturulacağını ve 3 dizin etiketine sahip satırı seçmek için .loc’un nasıl kullanılacağını gösterir:

 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

Farklı dizin etiketlerine sahip birden çok satırı seçmek için benzer sözdizimini kullanabiliriz:

 #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 ve .loc arasındaki fark

Yukarıdaki örnekler .iloc ve .loc arasındaki ince farkı göstermektedir:

  • .iloc, satırları bir tamsayı dizinine göre seçer. Dolayısıyla, bir DataFrame’in 5. satırını seçmek istiyorsanız, ilk satır 0 dizininde olduğundan, ikinci satır dizin 1’de olduğundan ve bu şekilde devam ettiğinden df.iloc[[4]] kullanırsınız.
  • .loc, satırları etiketli bir dizine göre seçer. Dolayısıyla, dizin etiketi 5 olan satırı seçmek istiyorsanız doğrudan df.loc[[5]] kullanacaksınız.

Ek kaynaklar

Pandas DataFrame’de satır numaraları nasıl alınır?
Pandalar’da NaN değerlerine sahip satırlar nasıl silinir
Pandalar’da dizin sütunu nasıl kaldırılır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir