Pandas'a Giriş: Series ve DataFrame Yapıları

Bu derste ne yapacağız?

Bu derste Python'da veri analizi için en çok kullanılan kütüphanelerden biri olan pandas ile tanışacağız. Pandas kütüphanesinin sunduğu iki temel yapıyı, Series ve DataFrame nesnelerini, elle örnekler üzerinden adım adım oluşturacak ve inceleyeceğiz. Bir önceki derste Python'da temel veri yapıları olan liste ve sözlüklerle çalışmıştık; bu ders, o bilgiyi bir üst seviyeye taşıyarak verileri tablo ve sütun mantığıyla düzenlemeyi öğretir. Derse başlamadan önce bilgisayarınızda Python'un kurulu olması ve pandas kütüphanesinin yüklenmiş olması gerekir. Eğer pandas kurulu değilse, komut satırına pip install pandas yazarak kurabilirsiniz. Ayrıca Jupyter Notebook, Google Colab veya herhangi bir Python kod düzenleyicisinde kod çalıştırabiliyor olmanız yeterlidir. Arayüzler ve sürüm numaraları zamanla değişebilir; bu nedenle burada anlatılanları kendi ortamınızda küçük farklarla karşılaşabileceğinizi unutmayın.

Kavram

Pandas'ı bir tür "akıllı excel motoru" gibi düşünebilirsiniz. Excel'de bir tabloyu satır ve sütunlarla düzenlersiniz; pandas da tam olarak bunu Python kodu içinde yapmanızı sağlar, ama çok daha hızlı ve programlanabilir bir şekilde. Pandas'ın iki temel yapı taşı vardır. Birincisi Series: tek bir sütunu, yani tek boyutlu bir veri dizisini temsil eder. Bunu, bir sınıftaki öğrencilerin sadece not listesini tutan tek bir sütun gibi düşünebilirsiniz. İkincisi DataFrame: birden çok Series'in yan yana dizilmesiyle oluşan, satır ve sütunlardan meydana gelen iki boyutlu bir tablodur. Bir sınıftaki öğrencilerin adı, yaşı ve notu gibi birden fazla bilgiyi aynı tabloda tutan bir öğrenci listesi, tam olarak bir DataFrame örneğidir. Günlük hayattan bir benzetme yapacak olursak: Series bir defterdeki tek bir sütun, DataFrame ise o defterin tamamıdır; birçok sütun bir araya gelip anlamlı bir tablo oluşturur. Pandas'ı öğrenmek, veri bilimindeki hemen hemen her işin temelini oluşturur; çünkü veri temizleme, filtreleme, gruplama ve görselleştirme gibi işlemlerin neredeyse tamamı DataFrame üzerinden yapılır.

Adım adım uygulama

Aşağıdaki adımları kendi Python ortamınızda (Jupyter Notebook, Google Colab veya bir kod düzenleyici) sırayla deneyerek ilerleyin.

  • Adım 1: Pandas kütüphanesini içe aktarın. Yeni bir kod hücresi açın ve şu satırı yazıp çalıştırın: import pandas as pd. Bu satır, pandas kütüphanesini programınıza dahil eder ve ona kısaca "pd" adıyla erişmenizi sağlar. Veri bilimi dünyasında pandas'ı "pd" kısaltmasıyla çağırmak neredeyse evrensel bir alışkanlıktır.
  • Adım 2: Bir Series oluşturun. Şu kodu yazın: notlar = pd.Series([85, 90, 78, 92]). Bu satır, dört sayıdan oluşan tek boyutlu bir veri dizisi yaratır ve bunu "notlar" adlı bir değişkene atar. Series'i ekrana yazdırmak için print(notlar) komutunu kullanın; her değerin solunda otomatik olarak oluşturulan bir index (sıra numarası) göreceksiniz, bu index 0'dan başlar.
  • Adım 3: Series'e kendi etiketlerinizi verin. İsterseniz index'i kendiniz belirleyebilirsiniz: notlar = pd.Series([85, 90, 78, 92], index=["Ali", "Ayşe", "Can", "Deniz"]). Bu kod, her nota otomatik sayı yerine bir öğrenci adı etiketi atar; böylece notlar["Ayşe"] yazarak doğrudan Ayşe'nin notuna ulaşabilirsiniz.
  • Adım 4: Bir sözlükten DataFrame oluşturun. Şu kodu yazın: veri = {"isim": ["Ali", "Ayşe", "Can"], "yas": [21, 23, 22], "not": [85, 90, 78]}. Bu satır, üç anahtarlı (isim, yaş, not) bir Python sözlüğü tanımlar; her anahtar ileride bir sütun adı olacaktır.
  • Adım 5: Sözlüğü DataFrame'e çevirin. Şu kodu yazın: df = pd.DataFrame(veri). Bu satır, oluşturduğunuz sözlüğü gerçek bir tabloya, yani DataFrame'e dönüştürür ve "df" adlı değişkene atar. Pandas dünyasında DataFrame değişkenlerine kısaca "df" adını vermek çok yaygın bir alışkanlıktır.
  • Adım 6: DataFrame'i görüntüleyin. Şu kodu yazın: print(df). Ekranda isim, yaş ve not sütunlarından oluşan, üç satırlık düzgün bir tablo göreceksiniz. Jupyter Notebook veya Colab kullanıyorsanız, hücrenin en altına sadece df yazıp çalıştırmak, tabloyu daha şık bir biçimde gösterir.
  • Adım 7: Tablonun temel bilgilerini inceleyin. Şu komutları tek tek deneyin: df.shape tablonun kaç satır ve kaç sütundan oluştuğunu (örneğin 3 satır, 3 sütun anlamına gelen (3, 3) şeklinde) gösterir; df.columns sütun adlarının listesini verir; df.head(2) ise tablonun ilk iki satırını gösterir. Bu üç komut, elinizdeki veriyi tanımanın ilk adımıdır.
  • Adım 8: Tek bir sütunu seçin. Şu kodu yazın: df["not"]. Bu komut, DataFrame'den yalnızca "not" sütununu bir Series olarak döndürür. Böylece bir DataFrame'in aslında birden fazla Series'in bir araya gelmesiyle oluştuğunu somut olarak görmüş olursunuz.

Sık karşılaşılan sorunlar

Hata veya SorunOlası SebepÇözüm
"ModuleNotFoundError: No module named 'pandas'"Pandas kütüphanesi bilgisayarınıza henüz kurulmamış.Komut satırına pip install pandas yazıp çalıştırın, ardından kod düzenleyicinizi yeniden başlatın.
"NameError: name 'pd' is not defined"import pandas as pd satırı çalıştırılmadan pandas komutları kullanılmaya çalışılmış.Kod hücrelerini yukarıdan aşağıya sırayla çalıştırın; import satırını her oturumda en başta bir kez çalıştırmayı unutmayın.
"ValueError: arrays must all be same length"DataFrame oluşturulurken sözlükteki listelerin eleman sayıları birbirinden farklı.Her sütunun listesinde aynı sayıda eleman olduğundan emin olun; örneğin isim listesinde üç ad varsa, yaş ve not listelerinde de üçer değer olmalıdır.
DataFrame ekranda düzensiz veya eksik görünüyorSözlük anahtarları yazım hatası içeriyor veya print() yerine yanlış değişken adı yazılmış.Sözlük anahtarlarını ve değişken adlarını (örneğin "veri" ve "df") dikkatlice kontrol edin; büyük-küçük harf duyarlılığına dikkat edin.
"KeyError" hatası sütun seçerkenVar olmayan bir sütun adı yazılmış (örneğin yazım hatası).df.columns komutuyla gerçek sütun adlarını kontrol edin ve tam olarak aynı şekilde yazın.

Mini görev

Şimdi öğrendiklerinizi kendi başınıza pekiştirme zamanı. Aşağıdaki küçük görevi kendi Python ortamınızda tamamlayın.

Kendinize ait üç arkadaşınızın adı, şehri ve yaşından oluşan bir sözlük oluşturun ve bunu bir DataFrame'e dönüştürün. Ardından tablonun boyutunu (shape) ve sütun adlarını (columns) ekrana yazdırın. Son olarak sadece "şehir" sütununu seçip bir Series olarak görüntüleyin.

Kontrol listesi:

  • En az üç anahtarlı (isim, şehir, yaş) bir sözlük oluşturdum.
  • pd.DataFrame() komutuyla sözlüğü DataFrame'e dönüştürdüm.
  • df.shape komutunu çalıştırıp sonucu yorumladım (kaç satır, kaç sütun olduğunu anladım).
  • df.columns komutuyla sütun adlarını listeledim.
  • Tek bir sütunu ("şehir") seçip ekrana yazdırdım ve bunun bir Series olduğunu fark ettim.

Kendini sına

1) Pandas kütüphanesini bir Python programına dahil etmek için hangi komut kullanılır?

2) Series ile DataFrame arasındaki temel fark nedir?

3) Bir DataFrame'in kaç satır ve sütundan oluştuğunu öğrenmek için hangi özellik kullanılır?

4) Bir sözlükten DataFrame oluşturmak için hangi fonksiyon kullanılır?

5) df["not"] komutu çalıştırıldığında pandas bize hangi tür bir nesne döndürür?

Cevaplar

1) import pandas as pd komutu kullanılır; bu satır pandas'ı programa dahil eder ve ona "pd" kısa adıyla erişim sağlar.

2) Series tek boyutlu, yani tek bir sütunluk veri dizisidir; DataFrame ise birden fazla Series'in bir araya gelmesiyle oluşan iki boyutlu, satır ve sütunlu bir tablodur.

3) df.shape özelliği kullanılır; bu özellik (satır sayısı, sütun sayısı) şeklinde bir sonuç döndürür.

4) pd.DataFrame() fonksiyonu kullanılır; parantez içine bir sözlük verilerek tablo oluşturulur.

5) Bir Series nesnesi döndürür; çünkü DataFrame'den tek bir sütun seçildiğinde, o sütun artık tek boyutlu bir veri dizisi haline gelir.

Bir sonraki derste, DataFrame üzerinde satır ve sütun seçme, filtreleme ve koşullu sorgulama gibi işlemleri öğrenerek bu tabloları gerçek verilerle daha etkili biçimde kullanmaya başlayacağız.

Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol