Giriş: DataFrame Nedir?
Python’da veri analizi ve manipülasyonu yapmak için en çok tercih edilen kütüphanelerden biri olan Pandas, özellikle DataFrame yapısıyla dikkat çekmektedir. DataFrame, iki boyutlu bir veri yapısıdır ve tablolara benzer bir yapıdadır. Yani, bir DataFrame, verileri satırlar ve sütunlar halinde düzenleyerek kolayca analiz etmemizi sağlar. DataFrame’lerin esnekliği ve Pandas’ın sunduğu çeşitli fonksiyonlar, kullanıcılara karmaşık veri işlemlerini basit hale getirme imkanı sunar.
Özellikle veri bilimi ve makine öğrenmesi alanlarında aktif olarak çalışan geliştiriciler için DataFrame’ler, veri setleriyle çalışırken vazgeçilmez bir araçtır. Bu yazımızda, Python’da DataFrame işlemlerini derinlemesine inceleyeceğiz. Temel oluşturma, veri okuma, yazma, filtreleme, gruplama, ve daha fazlası gibi konuları adım adım ele alarak, her seviyeden geliştiriciye bilgi sunmayı hedefliyoruz.
Pandas kütüphanesinin sunduğu araçlarla birlikte, hızlı ve etkili bir şekilde veri işleme işlemlerini gerçekleştirmek mümkündür. Hangi veri kaynaklarından veri alabileceğinizi, bu verileri nasıl düzenleyip anlamlandırabileceğinizi ve sonuçları nasıl görselleştirebileceğinizi keşfedeceğiz. Hazırsanız, DataFrame işlemlerine dair derin bir yolculuğa çıkalım!
DataFrame Oluşturma
Pandas kütüphanesini kullanarak bir DataFrame oluşturmak oldukça basittir. Öncelikle Pandas kütüphanesini projelerimize dahil etmeliyiz. Bunun için, kütüphaneyi yüklemediyseniz terminalde şu komutu çalıştırabilirsiniz:
pip install pandas
Pandas’ı yükledikten sonra, temel bir DataFrame oluşturmak için aşağıdaki adımları takip edelim:
import pandas as pd
veri = {'İsim': ['Ahmet', 'Mehmet', 'Ayşe'], 'Yaş': [25, 30, 22], 'Şehir': ['İstanbul', 'Ankara', 'İzmir']}
df = pd.DataFrame(veri)
print(df)
Yukarıdaki kod, basit bir sözlük kullanarak üç sütun: ‘İsim’, ‘Yaş’ ve ‘Şehir’ içeren bir DataFrame oluşturur. DataFrame’in çıktısı şu şekilde olacaktır:
İsim Yaş Şehir
0 Ahmet 25 İstanbul
1 Mehmet 30 Ankara
2 Ayşe 22 İzmir
Bu temel DataFrame, farklı veri türlerini (string ve integer) bir arada tutma yeteneğiyle gelişmiş veri analizi için sağlam bir temel oluşturur. Bu aşamada elde ettiğiniz DataFrame ile her türlü işlem gerçekleştirebilirsiniz. Ayrıca DataFrame’leri farklı kaynaklardan da oluşturmak mümkün; örneğin CSV dosyası, Excel dosyası veya SQL veritabanlarından.
Veri Okuma ve Yazma
Bir veri setini analiz etmeye başlamanın ilk adımlarından biri, veriyi doğru bir şekilde okumaktır. Pandas kütüphanesi, çeşitli dosya formatlarından veriyi kolayca okuyabilmenizi sağlar. Örneğin, bir CSV dosyasını okumak için pd.read_csv()
fonksiyonunu kullanırız. Aşağıda bir örnek gösterilmektedir:
df = pd.read_csv('veri.csv')
Bu komut, belirtilen ‘veri.csv’ dosyasındaki verileri alarak bir DataFrame oluşturacaktır. Ayrıca verinizi dosyaya yazmak da oldukça kolaydır. DataFrame’inizi bir CSV dosyasına kaydetmek için aşağıdaki kodu kullanabilirsiniz:
df.to_csv('yeni_veri.csv', index=False)
Buradaki index=False
parametresi, DataFrame’in index sütununu dosyaya kaydetmemek için kullanılır. Böylece daha temiz bir çıktı elde edersiniz.
Veri Filtreleme ve Seçimi
Pandas ile veri analizi yaparken, belirli koşulları sağlayan verileri filtrelemek oldukça önemlidir. DataFrame ile filtreleme yaparken, boolean indeksleme yöntemini kullanabilirsiniz. Aşağıdaki örnekte, yaşı 25’ten büyük olan kişiler filtrelenmektedir:
yas_filtre = df[df['Yaş'] > 25]
Yukarıdaki kod satırı, DataFrame’deki ‘Yaş’ sütununu seçer ve her bir değeri 25 ile karşılaştırarak bir boolean dizisi oluşturur. Daha sonra bu diziyi kullanarak yeni bir DataFrame elde edilir. Sonuç aşağıdaki gibidir:
İsim Yaş Şehir
1 Mehmet 30 Ankara
Bunun yanı sıra, birden fazla koşulu birleştirmek de mümkündür. Örneğin, yaşı 25’ten büyük ve ‘İstanbul’da yaşayan’ kişileri seçmek için:
filtreli_df = df[(df['Yaş'] > 25) & (df['Şehir'] == 'İstanbul')]
Bu tarz filtreleme işlemleri, veri analizi sırasında oldukça faydalıdır ve kullanıcıya gerekli verilere hızlı bir şekilde erişebilme imkanı sunar. Ayrıca verinin hangi koşullara yanıt verdiğini anlamada önemli bir rol oynar.
Birleştirme (Merge) ve İlişkilendirme
Pandas, iki veya daha fazla DataFrame’i birleştirmek için merge()
fonksiyonunu sunar. Birleştirme, bir veri setinde bulunan belirli bir anahtar üzerinden başka bir veri setine erişebilmemizi sağlar. Bu işlem, veri analizi sürecinde çok önemlidir. Aşağıda iki DataFrame’in birleştirilmesine örnek verilmiştir:
df1 = pd.DataFrame({'ID': [1, 2, 3], 'İsim': ['Ahmet', 'Mehmet', 'Ayşe']})
df2 = pd.DataFrame({'ID': [1, 2, 4], 'Yaş': [25, 30, 35]})
birlesik_df = pd.merge(df1, df2, on='ID', how='inner')
Bu örnekte, ‘ID’ sütunu üzerinden iki DataFrame birleştirilmiştir. Çıktı şu şekilde olacaktır:
ID İsim Yaş
0 1 Ahmet 25
1 2 Mehmet 30
Görüldüğü üzere, yalnızca her iki DataFrame’de de bulunan ‘ID’ değerleri alınmıştır. Bu tarz birleştirmeler, veri analizinde ilişkili verileri bir araya getirerek daha zengin bir veri analizi sağlar.
Gruplama ve Agregasyon İşlemleri
Pandas’ta gruplama işlemleri, veriyi belirli kategorilere ayırmak ve bu kategoriler üzerinde agregasyon (özetleme) işlemeleri uygulamak için kullanılır. groupby()
yöntemi, bu tür işlemler için oldukça kullanışlıdır. Aşağıda basit bir gruplama örneği verilmiştir:
grup = df.groupby('Şehir')['Yaş'].mean()
Bu kod, ‘Şehir’ sütununa göre veriyi gruplar ve her şehirdeki ‘Yaş’ değerlerinin ortalamasını alır. Sonuç aşağıdaki gibi olacaktır:
Şehir
Ankara 30.0
İstanbul 25.0
İzmir 22.0
Name: Yaş, dtype: float64
Bunun yanı sıra, birden fazla agregasyon fonksiyonu da kullanabilirsiniz. Aşağıda, yaşların toplamı ve ortalamasını hesaplayan örnek bir kod parçası yer almaktadır:
grup = df.groupby('Şehir').agg({'Yaş': ['mean', 'sum']})
Bu teknik, veri setindeki örüntüleri anlayarak daha verimli kararlar almamıza yardımcı olur. Veriyi anlamlandırmak ve çeşitli metrikler oluşturmak için gruplama işlemlerinin ne kadar önemli olduğunu unutmayın.
Sonuç
Pandas kütüphanesi sayesinde Python’da DataFrame işlemleri oldukça basit ve verimli bir hale gelmiştir. DataFrame oluşturma, veri okuma/yazma, filtreleme, birleştirme ve gruplama işlemlerinin temel bilgilerini öğrendik. Bu bilgiler, veri analizi ve işleme sürecinde bize önemli kolaylıklar sağlar.
Artık Python’da DataFrame ile çalışırken, karşılaşabileceğiniz temel düzeydeki işlemleri daha iyi anlamış olmalısınız. Bu süreç içerisinde gelişmiş teknikleri kullanarak daha derin analizler yapma imkanı bulacaksınız. Hata senaryolarına dikkat ederek, en etkili sonucu elde etmek için kodlarınızı optimize edebilirsiniz.
Unutmayın ki pratik yaparak bu konudaki yetkinliğinizi artırabilir ve gerçek iş hayatında karşılaşacağınız veri setleriyle rahatlıkla başa çıkabilirsiniz. Şimdi öğrendiğiniz metodları kendi projelerinizde uygulamaya başlayabilirsiniz!