Pandas DataFrame’leri, Python’da veri manipülasyonunun temel taşlarından biridir. Sıklıkla, DataFrame’inizdeki bireysel hücreleri değiştirmeniz gerekecektir. Bu makale, DataFrame’in indeksini kullanarak bunu gerçekleştirmenin üç etkili yöntemini ele almaktadır.
İçerik Tablosu
.at
ile Hücre Değerlerini Ayarlama.loc
ile Hücre Değerlerini Ayarlama- Kullanımdan Kaldırılmış
.set_value()
Metodu
.at
ile Hücre Değerlerini Ayarlama
.at
erişimcisi, satır ve sütun etiketlerini kullanarak bir DataFrame’deki tek bir hücreye erişmenin ve değiştirmenin oldukça etkili bir yolunu sunar. Hızı, tek değer atamaları için idealdir.
import pandas as pd
# Örnek DataFrame
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data, index=['A', 'B', 'C'])
# 'B' satırı ve 'col1' sütunundaki hücrenin değerini 10 olarak ayarlayın
df.at['B', 'col1'] = 10
print(df)
Bu, şu çıktıyı verecektir:
col1 col2
A 1 4
B 10 5
C 3 6
.at
, tek hücrelerle ilgilenirken hız ve basitlik için optimize edilmiştir. Bununla birlikte, birden fazla değer atamak TypeError
hatasına neden olacaktır.
.loc
ile Hücre Değerlerini Ayarlama
.loc
erişimcisi daha fazla esneklik sağlar. Satır ve sütunlar için etiket tabanlı indeksleme sağlar ve aynı anda birden fazla hücreye tek değerler veya diziler atamasını işleyebilir.
import pandas as pd
# Örnek DataFrame
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data, index=['A', 'B', 'C'])
# 'A' satırı ve 'col2' sütunundaki hücrenin değerini 100 olarak ayarlayın
df.loc['A', 'col2'] = 100
print(df)
# Birden fazla değer ayarlama
df.loc[['A', 'B'], 'col1'] = [5, 15] # A'ya 5 ve B'ye 15 atar
print(df)
Bu önce şu çıktıyı verecektir:
col1 col2
A 1 100
B 2 5
C 3 6
Ve sonra:
col1 col2
A 5 100
B 15 5
C 3 6
.loc
, hem tek hücre güncellemeleri hem de birden fazla satır ve sütun içeren daha karmaşık senaryolar için uygun olan en çok yönlü yöntemdir. Çok yönlü olsa da, tek hücre değişiklikleri için .at
genellikle daha hızlıdır.
Kullanımdan Kaldırılmış .set_value()
Metodu
.set_value()
metodu, yeni Pandas sürümlerinde kullanılmamaktadır. Eski sürümlerde hala çalışıyor olsa da, daha iyi uyumluluk ve performans için .at
veya .loc
kullanılması şiddetle tavsiye edilir. Yeni kodlarda .set_value()
kullanmaktan kaçının.
Özetle, hem .at
hem de .loc
, bir Pandas DataFrame’indeki bireysel hücreleri değiştirmenin etkili yollarını sunar. Tek değerler için hızı ve basitliği nedeniyle .at
‘ı, birden fazla hücreyle veya daha karmaşık değişikliklerle çalışırken esnekliği nedeniyle .loc
‘u tercih edin.