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