Pandas’ta Hiyerarşik İndeksleme (MultiIndex) ve Veri Birleştirme
Gerçek Hayat Verileriyle Anlamak
Bir eyaletin nüfusu hem eyalete hem yıla bağlıdır
Bir çalışanın bilgileri hem departmana hem tarihe bağlıdır
Bir ölçüm hem zamana hem sensöre bağlıdır
İşte Pandas’ın MultiIndex (Hiyerarşik İndeks) yapısı tam olarak bu ihtiyaca cevap verir.
Bu yazıda:
MultiIndex nedir?
Ne zaman gerçekten gerekir?
Nasıl oluşturulur?
Stack / Unstack ne işe yarar?
concat ve merge arasındaki fark nedir?
sorularını bol örnekle ve sade bir dille ele alacağız.
Pandas’ta İndeks Nedir ve Neden Önemlidir?
Pandas’ta her veri yapısının (Series, DataFrame) mutlaka bir index’i vardır.
Basit bir örnek:
Çıktı:
0,1,2 değerleri verinin kimliği gibidir.Tek İndeks Gerçek Hayatta Neden Yetmez?
Şimdi biraz daha gerçekçi bir veri düşünelim:
California – 2000 – nüfus
California – 2010 – nüfus
Texas – 2000 – nüfus
Texas – 2010 – nüfus
Bu veri setinde:
Aynı eyalet birden fazla kez
Aynı yıl birden fazla kez
geçmektedir.
Bu durumda “satırı ne tanımlar?” sorusu ortaya çıkar.
Cevap: Eyalet + Yıl birlikte
İşte bu noktada MultiIndex devreye girer.
MultiIndex (Hiyerarşik İndeks) Nedir?
MultiIndex, bir satırı birden fazla indeks seviyesiyle tanımlamamızı sağlar.
Yani tek bir etiket yerine:
şeklinde katmanlı bir indeks kullanırız.
Basit Bir MultiIndex Örneği
Çıktı:
Doğru Yöntem: pd.MultiIndex
Pandas, MultiIndex için özel bir yapı sunar:
Artık Pandas bu veriyi iki seviyeli indeks olarak tanır.
MultiIndex ile Veri Seçmek Ne Kadar Kolay?
Sadece bir eyaletin tüm yılları
Sadece 2000 yılına ait tüm eyaletler
Tek bir hücreye erişmek
Bu işlemleri for döngüsü yazmadan, manuel filtre yapmadan yapabiliyor olmak Pandas’ın en büyük gücüdür.
DataFrame ile MultiIndex Kullanımı
Aynı veriyi DataFrame olarak düşünelim:
Bu yapı özellikle raporlama ve analiz için daha uygundur.
Stack ve Unstack: Veri Şeklini Değiştirmek
MultiIndex analitik olarak güçlüdür ama her zaman okunabilir değildir.
Unstack: Satırı Sütuna Çevirir
Çıktı:
Bu yapı:
Raporlama
Karşılaştırma
Grafik çizimi
için çok daha uygundur.
Stack: Tekrar Uzun Formata Dönmek
Bu dönüşümlere veri dünyasında:
Long format
Wide format
dönüşümü denir.
reset_index ve set_index Ne İşe Yarar?
reset_index
İndeksi sütuna çevirir:
set_index
Sütunu tekrar indeks yapar:
Bu iki fonksiyon, veri yapısını ihtiyaca göre esnek biçimde değiştirmenizi sağlar.
Veri Birleştirme: concat vs merge
concat: Etiket Bazlı Birleştirme
Satır veya sütun bazlıdır
İçeriğe bakmaz
İndeks ve sütun etiketlerini hizalar
merge: İçerik Bazlı Birleştirme (SQL Mantığı)
Değerleri eşleştirir
One-to-one, one-to-many ilişkileri destekler
Gerçek hayatta en sık kullanılan yöntemdir
concat Ne Zaman, merge Ne Zaman?
| Durum | Kullan |
|---|---|
| Aynı yapıda tabloları alt alta eklemek | concat |
| Anahtar sütuna göre eşleştirmek | merge |
| SQL benzeri join işlemi | merge |
Sonuç: Neden MultiIndex Öğrenmelisiniz?
Çünkü:
Gerçek dünya verileri çok boyutludur
Zaman serileri ve panel veriler MultiIndex olmadan eksik kalır
Kodlar daha kısa, okunabilir ve güçlü olur
Pandas’ın asıl gücü burada ortaya çıkar
MultiIndex ilk başta karmaşık görünür; ancak bir kez mantığını kavradığınızda Pandas’ta “ileri seviye” kapısını açar.