Pandalar vs loc: fark nedir?
Bir pandanın DataFrame satırlarını ve sütunlarını seçmeye gelince, .loc ve .at yaygın olarak kullanılan iki işlevdir.
İşte iki işlev arasındaki ince fark:
- .loc giriş argümanı olarak birden fazla satır ve sütun alabilir
- .at giriş argümanı olarak yalnızca tek bir satır ve sütun alabilir
Aşağıdaki örnekler, her fonksiyonun aşağıdaki pandalar DataFrame ile pratikte nasıl kullanılacağını gösterir:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print (df) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6 5 F 11 9 5 6 G 20 9 9 7:28 4 12
Örnek 1: Pandalarda loc nasıl kullanılır?
Aşağıdaki kod, nokta sütununun 0 dizin konumunda bulunan DataFrame’deki değere erişmek için .loc’un nasıl kullanılacağını gösterir:
#select value located at index position 0 of the points column
df. loc [0, ' points ']
18
Bu, 18 değerini döndürür.
Aşağıdaki kod, 0 ile 4 arasındaki indeks değerleri arasındaki satırların yanı sıra puan ve destek sütunlarına erişmek için .loc’un nasıl kullanılacağını gösterir:
#select rows between index values 0 and 4 and columns 'points' and 'assists'
df. loc [0:4, [' points ', ' assists ']]
assist points
0 18 5
1 22 7
2 19 7
3 14 9
4 14 12
İster tek bir değere ister bir grup satır ve sütuna erişmek istiyor olalım, .loc işlevi her ikisini de yapabilir.
Örnek 2: Pandalarda at nasıl kullanılır?
Aşağıdaki kod, nokta sütununun 0 dizin konumunda bulunan DataFrame’deki değere erişmek için .at dosyasının nasıl kullanılacağını gösterir:
#select value located at index position 0 of the points column
df. at [0, ' points ']
18
Bu, 18 değerini döndürür.
Ancak, 0 ve 4 indeks değerleri arasındaki satırların yanı sıra puanlar ve asist sütunlarına erişmek için at kullanmaya çalıştığımızı varsayalım:
#try to select rows between index values 0 and 4 and columns 'points' and 'assists'
df. at [0:4, [' points ', ' assists ']]
TypeError : unhashable type: 'list'
at işlevi birden çok satırı veya birden çok sütunu giriş argümanı olarak alamadığından bir hata alıyoruz.
Çözüm
Bir pandanın DataFrame’inde tek bir değere erişmek istediğinizde loc ve at işlevleri düzgün çalışacaktır.
Ancak bir grup satır ve sütuna erişmek istediğinizde bunu yalnızca loc işlevi yapabilir.
İlgili: Pandalar loc vs iloc: fark nedir?
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandas Loc kullanılarak birden çok koşula dayalı satırlar nasıl seçilir
Pandalar’da sütun değerlerine göre satırlar nasıl seçilir
Pandalarda dizine göre satırlar nasıl seçilir