Pandas droplevel ile Multi-Index Seviyesi Kaldırma
Pandas'te çok katmanlı indeksler (multi-index) çalışırken bazen bir ya da birkaç seviyeyi çıkarmak gerekir. burada droplevel() devreye giriyor. Bu metod, DataFrame'in indeks yapısını düzenlemek için kullanışlı ve hızlı bir yol sağlıyor.
droplevel() kullanmak çok basit. "level" parametresine kaldırmak istediğin seviyeyi integer (0, 1, 2...) ya da string (seviye adı) olarak geçersin. Örneğin, iki seviyeli bir indeksin ilk seviyesini kaldırmak için droplevel(0) yazabilirsin. Eğer seviyenin adı varsa, doğrudan adını kullanmak daha okunabilir olur.
1import pandas as pd23# Multi-index DataFrame oluştur4df = pd.DataFrame(5{'satış': [100, 150, 200, 250]},6index=pd.MultiIndex.from_tuples(7[('A', 'Q1'), ('A', 'Q2'), ('B', 'Q1'), ('B', 'Q2')],8names=['bölge', 'çeyrek']9)10)1112# 'çeyrek' seviyesini kaldır13df_yeni = df.droplevel('çeyrek')14print(df_yeni)Çıktıda göreceksin ki satır sayısı aynı kalıyor, ama indeks yapısı değişiyor. "axis" parametresiyle sütun indekslerinden de seviye kaldırabilirsin; axis=0 (ya da "index") satır indeksini, axis=1 (ya da "columns") sütun indeksini hedef alır. Kaldırılan seviyeler sonucunda aynı değerler tekrar edebilir, bu normal ve beklenen bir durum.
Praktik tavsiye: droplevel() sonrası indeksinde çoklama varsa reset_index() ya da groupby() kombinasyonları düşün. Ayrıca, orijinal DataFrame'i değiştirmez; yeni bir DataFrame döndürür, bu yüzden sonucu bir değişkene atamayı unutma.
0 yorum