Pandas DataFrame’leri, Python’da veri manipülasyonu için olmazsa olmazdır. Bireysel hücre değerlerine verimli bir şekilde erişim, yaygın bir işlemdir. Bu makale, bu değerleri alma yöntemlerini inceleyerek, güçlü ve zayıf yönlerini vurgular.
İçerik Tablosu
- Tam Sayı Tabanlı İndeksleme:
iloc
- Tek Hücre Erişimi için
iat
veat
- Sütun ve İndeks Üzerinden Erişim:
df['col_name'].iloc[]
Tam Sayı Tabanlı İndeksleme: iloc
.iloc
, çok yönlü tam sayı tabanlı indeksleme sağlar. Hem satırlar hem de sütunlar için sıfır tabanlı indeksleme kullanır.
import pandas as pd
data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)
# 1. satır, 0. sütun (ikinci satır, ilk sütun) değerine erişim
value = df.iloc[1, 0]
print(f"iloc kullanılarak değer: {value}") # Çıktı: 20
# 0. satır, 1. sütun (ilk satır, ikinci sütun) değerine erişim
value = df.iloc[0, 1]
print(f"iloc kullanılarak değer: {value}") # Çıktı: 40
.iloc
, özellikle büyük DataFrame’ler için verimlidir ve sayısal indeksler kullanarak hücre seçiminde hassas kontrol sunar.
Tek Hücre Erişimi için iat
ve at
.iat
ve .at
özlü tek hücre erişimi sağlar. .iat
tam sayı tabanlı indeksleme kullanırken, .at
etiket tabanlı indeksleme (sütun adları) kullanır.
import pandas as pd
data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)
# iat kullanarak 1. satır, 0. sütundaki değeri al
value = df.iat[1, 0]
print(f"iat kullanılarak değer: {value}") # Çıktı: 20
# at kullanarak 0. satır, 'col2' sütunundaki değeri al
value = df.at[0, 'col2']
print(f"at kullanılarak değer: {value}") # Çıktı: 40
Bu yöntemler, bir Seri veya DataFrame değil, skaler bir değer döndürdükleri için .iloc
‘tan daha hızlı tek hücre erişimi sağlar.
Sütun ve İndeks Üzerinden Erişim: df['col_name'].iloc[]
Bu yaklaşım, önce bir sütun seçer ve ardından bu sütunun altındaki NumPy dizisi içinde belirli bir satıra erişir. Önceki yöntemlerden daha az esnek ve verimlidir.
import pandas as pd
data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)
# 'col1' sütununun 1. satırdaki değerine erişim
value = df['col1'].iloc[1] # .values[]'den daha verimli
print(f"Sütun üzerinde iloc kullanılarak değer: {value}") # Çıktı: 20
Bu yöntem kullanışlı görünse de, verimlilik ve açıklık için doğrudan seçilen sütun üzerinde .iloc
kullanmak genellikle tercih edilir.
Özetle, .iloc
, .iat
ve .at
, DataFrame hücrelerine erişmek için verimli ve okunabilir yollar sağlar. Seçilen sütunda .iloc
kullanımı, .values[]
kullanmaya göre genellikle tercih edilir. İhtiyaçlarınıza ve kodlama tarzınıza en uygun yöntemi seçin.