Pandas DataFrame’leri, Python’da veri manipülasyonunun temel taşlarından biridir. Sıklıkla, her satır için benzersiz bir tanımlayıcı görevi gören bir veya daha fazla sütunu indeks olarak belirtmeniz gerekir. Bu, veri erişim hızını önemli ölçüde artırır ve çeşitli işlemleri basitleştirir. Bu makale, bunu başarmak için iki temel yöntemi ayrıntılarıyla açıklamaktadır.
İçindekiler
- Yöntem 1:
set_index()
Fonksiyonunun Kullanımı - Yöntem 2: Dosya İçe Aktarımı Sırasında
index_col
Parametresinin Kullanımı - Sonuç
- SSS
Yöntem 1: set_index()
Fonksiyonunun Kullanımı
set_index()
fonksiyonu, DataFrame sütunlarını indeks olarak ayarlamak için en çok yönlü yaklaşımı sağlar. Tek veya çoklu sütun indekslerine izin verir ve yinelenen indeks girdilerini yönetme seçenekleri sunar.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 22, 28],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
print("Orijinal DataFrame:n", df)
# 'Name' sütununu indeks olarak ayarla
df_indexed = df.set_index('Name')
print("n'Name' indeksi olan DataFrame:n", df_indexed)
# Birden fazla sütunu indeks olarak ayarla
df_multi_indexed = df.set_index(['Name', 'City'])
print("n'Name' ve 'City' çoklu indeksi olan DataFrame:n", df_multi_indexed)
# Yinelenen indeks değerlerini ele alma (errors='ignore' kullanarak)
df_duplicates = pd.DataFrame({'A': [1, 2, 1], 'B': [4, 5, 6]})
df_duplicates_indexed = df_duplicates.set_index('A', verify_integrity=False)
print("nYinelenen indeks değerleri olan DataFrame (hata yok sayıldı):n", df_duplicates_indexed)
Bu örnek, tek ve çoklu sütun indekslerinin ayarlanmasını ve yinelenen indeks değerleri için hata işlemesini göstermektedir. verify_integrity=False
yinelenenlere izin verse de, bunlar sonraki işlemlerde komplikasyonlara neden olabilir, bu nedenle dikkatli bir değerlendirme önerilir.
Yöntem 2: Dosya İçe Aktarımı Sırasında index_col
Parametresinin Kullanımı
Dosyalardan (CSV, Excel, vb.) veri içe aktarırken, pd.read_csv()
ve pd.read_excel()
gibi fonksiyonlardaki index_col
parametresi, içe aktarma sırasında indeks sütununu(sütunlarını) doğrudan ayarlar. Bu, tüm veri kümesini içe aktarmadan ve ardından indeksi ayarlamadan çok daha verimlidir.
import pandas as pd
# 'Name'i indeks sütunu olarak kullanarak CSV dosyası okuma
df_from_csv = pd.read_csv('data.csv', index_col='Name') # 'data.csv' dosyasının mevcut olduğunu varsayar
print("n'Name' indeksiyle CSV'den okunan DataFrame:n", df_from_csv)
# Birden fazla indeks sütunuyla okuma
df_multi_from_csv = pd.read_csv('data.csv', index_col=['Name', 'City']) # 'data.csv' dosyasının mevcut olduğunu varsayar
print("n'Name' ve 'City' indeksleriyle CSV'den okunan DataFrame:n", df_multi_from_csv)
'data.csv'
öğesini gerçek dosya yolunuzla değiştirmeyi unutmayın. Bu yöntem, özellikle büyük veri kümeleri için, gereksiz içe aktarma sonrası işlemleri en aza indirerek oldukça faydalıdır.
Sonuç
Pandas DataFrame’lerinde sütunları indeks olarak ayarlamak, verimli veri manipülasyonu için çok önemlidir. Hem set_index()
hem de index_col
parametresi etkili yaklaşımlar sunar. İş akışınıza ve veri boyutunuza en uygun yöntemi seçin. Olası indeks yinelenenlerinin her zaman farkında olun ve bunları uygun şekilde ele alın.
SSS
- S: Benzersiz olmayan bir sütunu indeks olarak ayarlamayı denersem ne olur?
Y:set_index()
içindeverify_integrity=False
veyaerrors='ignore'
kullanılmadığı sürece birValueError
hatası oluşturulur. Ancak, gelecekteki sorunları önlemek için yinelenenleri önceden ele almak önerilir. - S: İndeksi sayısal bir indekse nasıl sıfırlarım?
Y:reset_index()
fonksiyonunu kullanın. Bu, geçerli indeksi yeni bir sütuna taşır ve varsayılan bir sayısal indeks oluşturur. - S: Bir sütunu indeks olarak kullanmanın avantajları nelerdir?
Y: Anlamlı bir sütunu indeks olarak kullanmak, veri seçim ve filtreleme hızını önemli ölçüde iyileştirir ve veri düzenlemeyi ve okunabilirliği artırır.