Veri Seti Manipülasyonu için Python ve Pandas

Veri Seti Manipülasyonu için Python ve Pandas

Veri Seti Manipülasyonu için Python ve Pandas yazılım dilinin kullanımıyla veri analizi yapmayı öğrenin Veri görselleştirmesi, temizleme ve manipülasyonu için etkili bir araç olan Python ve Pandas hakkında daha fazla bilgi edinin

Veri Seti Manipülasyonu için Python ve Pandas

Veri manipülasyonu, günümüzün veri odaklı dünyasında oldukça önemlidir. Verilerin işlenebilmesi, analiz edilebilmesi ve sonuçta doğru kararlar alınabilmesi için bir dizi işlem gerçekleştirilmesi gerekmektedir. Bu işlemlerin gerçekleştirilmesi için Python ve Pandas modülleri oldukça faydalıdır.

Python, veri bilimi ve yapay zeka alanlarında kullanılan popüler bir programlama dilidir. Pandas ise, Python'da veri manipülasyonu için kullanılan bir kütüphanedir. Pandas, verilerin analiz edilmesi, temizlenmesi ve manipüle edilmesi için bir dizi araç sağlar. Bu sayede verilerin doğru şekilde analiz edilmesi ve işlenmesi mümkün hale gelir.

Pandas, verileri DataFrame ve Series yapılarını kullanarak saklar. DataFrame, tablo benzeri bir yapıdır ve verilerin satırlarını ve sütunlarını tutar. Series, tek boyutlu bir veri yapısıdır ve aynı veri tipindeki değerleri tutar. Pandas, farklı veri kaynaklarından verileri okuyabilir ve DataFrame'e dönüştürebilir. Böylelikle farklı veri kaynaklarından verileri tek bir yapıda birleştirmek mümkün hale gelir.

Pandas, birçok işlemi gerçekleştirmek için çok sayıda fonksiyon sağlar. Bunlar arasında tam sayı işlemleri, sıralama, istatistiksel işlemler ve veri filtrelemesi yer alır. Ayrıca, Pandas, verilerin birleştirilmesi, yeniden şekillendirilmesi ve manipüle edilmesi için bir dizi araç sağlar. Tüm bu işlemler, verilerin daha anlamlı ve anlaşılabilir hale gelmesini sağlar.

Yukarıda belirtilen nedenlerden dolayı, Pandas, veri manipülasyonu konusunda tercih edilen bir araçtır. Pandas kullanımı, özellikle büyük veri setleriyle çalışırken oldukça faydalıdır. Python ve Pandas modüllerinin kullanımı, veri manipülasyonu konusunda oldukça kolay ve verimlidir.


Pandas Nedir?

Pandas Nedir?

Pandas, veri analizi ve manipülasyon işlemleri için Python dilinde kullanılan bir kütüphanedir. Pandas, özellikle büyük veri setleri üzerinde çalışmak isteyen kullanıcıların en çok tercih ettiği bir kütüphanedir. İçerdiği veri yapıları sayesinde, kullanıcıların verileri kolayca okumasını ve işlemesini sağlamaktadır.

Pandas'ın en önemli özelliklerinden biri, DataFrame ve Series isimli veri yapılarıdır. DataFrame, tablo benzeri bir yapıdır ve verilerin satırlarını ve sütunlarını tutar. Series ise tek boyutlu bir veri yapısıdır ve aynı veri tipindeki değerleri tutar. Bu yapılar sayesinde kullanıcılar, verileri birçok farklı şekilde sıralayabilir, filtreleyebilir, gruplandırabilir ve manipüle edebilir.

Bunun yanı sıra, pandas, birçok farklı veri kaynağından verileri okuyabilmektedir. Örneğin, verileri CSV dosyalarından, SQL veritabanlarından veya Excel dosyalarından okuyabilir. Kullanıcılar, pandasın içerisinde bulunan bu fonksiyonları kullanarak, hızlı ve kolay bir şekilde veri analizi ve manipülasyon işlemleri yapabilirler.


Pandas Veri Tipi ve Yapısı

Pandas, Python kitaplığı kullanılarak verileri saklamaya ve manipüle etmeye olanak tanır. Pandas, genellikle DataFrame ve Series yapılarını kullanarak verileri saklar.

DataFrame, SQL tabloları veya excel veri yapısına benzer bir yapıdadır ve verilerin satırlarını ve sütunlarını saklar. DataFrame'i düşünebileceğiniz gibi, bir tablo ya da bir excel çalışma sayfası olarak düşünebilirsiniz. DataFrame, verileri birleştirmek veya filtrelemek için kullanılır.

Series, DataFrame'in bir parçasıdır ve tek boyutlu bir veri yapısıdır. Verileri tek bir sütunda saklar ve tüm değerler aynı veri tipindedir. Series, listeden farklı olarak, her bir değerin bir indeksi olmasını gerektirir.


DataFrame Oluşturma

Pandas, Python'da verileri analiz etmek ve manipüle etmek için kullanılan bir kütüphanedir. DataFrame ve Series yapıları Pandas'ın temel veri tipleridir. DataFrame, tablo benzeri bir yapıdır ve verilerin satırlarını ve sütunlarını tutar. Series ise tek boyutlu bir veri yapısıdır ve aynı veri tipindeki değerleri tutar.

DataFrame oluşturmak için farklı veri kaynakları kullanabiliriz. NumPy dizilerinden, Python sözlüklerinden, CSV dosyalarından ve SQL veritabanlarından DataFrame oluşturmak mümkündür.

  • NumPy Dizilerinden DataFrame Oluşturma: Pandas, numpy dizisini alır ve onu DataFrame'e dönüştürür.
  • Python Sözlüklerinden DataFrame Oluşturma: Python sözlüğü kullanılarak DataFrame'in sütunları belirtilir.
  • CSV Dosyalarından DataFrame Oluşturma: Pandas, read_csv() fonksiyonunu kullanarak CSV dosyasından DataFrame oluşturabilir.
  • SQL Veritabanlarından DataFrame Oluşturma: Pandas, veritabanı sorgularını çalıştırarak SQL veritabanından verileri çekebilir ve onları DataFrame'e dönüştürebilir.

Örneğin, Pandas ile bir CSV dosyasından DataFrame oluşturmak oldukça kolaydır. Aşağıdaki örnek kod verilen CSV dosyasını kullanarak bir DataFrame oluşturmaktadır:

import pandas as pddf = pd.read_csv('veri.csv')

NumPy dizilerden bir DataFrame oluşturmak için ise, NumPy dizisi önce bir sözlüğe dönüştürülür ve bu sözlük Pandas tarafından DataFrame'e dönüştürülür:

import numpy as npimport pandas as pdarr = np.array([[1,2], [3,4]])df = pd.DataFrame(arr, columns=['A', 'B'])

Bu örnekler, Pandas ile veri manipülasyonunun sadece başlangıç noktasıdır. Pandas, verileri seçmek, filtrelemek, birleştirmek, bölmek, gruplamak, yığınlaştırmak ve daha birçoğunu yapmak için birçok işlev sunar.


NumPy Dizilerinden DataFrame Oluşturma

Numpy, çok boyutlu dizileri ve matrisleri işlemek için kullanılan bir Python kütüphanesidir. Pandas, NumPy dizilerini alabilir ve DataFrame'e dönüştürebilir. Böylece, DataFrame'in daha fazla işlevsellik sağlamasına olanak tanıyan sütun adları ve satır başlıkları eklenebilir.

NumPy dizisindeki veriler, dizinin sütunlarına, DataFrame'de ise sütun ve satırlara aktarılır. Bu işlem sırasında, aynı tipteki veriler DataFrame'de tek tipte bir diziye yerleştirilir.

Aşağıdaki örnekte, NumPy veri dizisini kullanarak, bir Pandas DataFrame oluşturulmuştur:

Kullanım Açıklama
pandas.DataFrame(data, index, columns, dtype) NumPy dizisini alır ve DataFrame'e dönüştürür.

Örnek Kod:

import numpy as npimport pandas as pd # NumPy veri dizisidata = np.array([[10, 20, 30], [40, 50, 60], [70, 80, 90]]) # Pandas DataFramedf = pd.DataFrame(data, columns=['A', 'B', 'C']) print(df)

Kod Çıktısı:

    A   B   C0  10  20  301  40  50  602  70  80  90

Bu örnekte, NumPy dizisi, DataFrame'e dönüştürüldü. Daha sonra, sütun adları, "A", "B" ve "C", DataFrame'e eklenmiştir. Son olarak, Pandas DataFrame, print() fonksiyonu aracılığıyla ekrana yazdırılmıştır.


Python Sözlüklerinden DataFrame Oluşturma

Python sözlükleri, Pandas ile bir DataFrame oluşturmak için oldukça kullanışlıdır. DataFrame'in sütunları sözlükteki anahtarlar ve değerleri de DataFrame'in sütunlarındaki veriler olacaktır. Bir Python sözlüğünden DataFrame oluşturmak için, öncelikle bir sözlük oluşturun.

    # Örnek bir sözlük oluşturma    my_dict = {'Saatler': ['9am', '10am', '11am', '12pm'],               'Randevular': [10, 15, 12, 20]}

Daha sonra, Pandas DataFrame'i oluşturmak için, DataFrame() işlevini kullanarak sözlüğü çağırın.

    # Sözlükten DataFrame oluşturma    import pandas as pd    df = pd.DataFrame(my_dict)    print(df)

Bu kodu çalıştırdığınızda, DataFrame'deki sütunlar "Saatler" ve "Randevular" olarak adlandırılır ve sözlükteki veriler DataFrame'in içine yerleştirilir. Bu şekilde, Pandas'ı kullanarak veri maniple etme işlemleri için çeşitli yöntemler öğrenebilirsiniz.


CSV Dosyalarından DataFrame Oluşturma

CSV dosyaları, verileri düz metin dosyalarında saklamak için yaygın olarak kullanılan bir formattır. Pandas, CSV dosyalarından veri okumak ve DataFrame oluşturmak için read_csv() fonksiyonunu sağlar.

Bir CSV dosyasından DataFrame oluştururken, read_csv() fonksiyonu, dosyanın yolunu ve adını belirten bir parametre alır. İsteğe bağlı olarak, ayraç karakteri, sütun adları, sütun veri tipleri ve diğer özellikler için de parametreler sağlayabilirsiniz.

Örnek olarak, "veriler.csv" dosyasından bir DataFrame oluşturmak için aşağıdaki kodu kullanabilirsiniz:

Kod: import pandas as pd
df = pd.read_csv('veriler.csv')

Bu kod, "veriler.csv" dosyasını okur ve bu dosyada bulunan verileri içeren bir DataFrame oluşturur.

read_csv() fonksiyonunun birçok özelliği vardır. Örneğin, ayraç karakterini değiştirebilir, sütun adlarını belirleyebilir ve daha fazlasını yapabilirsiniz. Aynı zamanda, read_excel() fonksiyonu da Excel dosyalarından veri okumak için kullanılabilir.


SQL Veritabanlarından DataFrame Oluşturma

Pandas, verileri analiz etmek ve/veya manipüle etmek için kullanılan bir Python kitaplığıdır. Pandas, hem NumPy hem de Python'un klasik sözlük yapılarına dayalı olarak N boyutlu bir dizin tabanlı veri yapısı sunar. Bu yapı, DataFrame ve Series yapılarıyla kullanıcı dostu bir arayüz sağlar.

SQL veritabanlarından DataFrame oluşturmak için, Pandas'ın read_sql() fonksiyonunu kullanabilirsiniz. Bu fonksiyon, SQL sorgusunu çalıştırarak verileri veritabanından alır ve sonuçları DataFrame'e dönüştürür. Ayrıca, Pandas ile verileri doğrudan veritabanına yazma ve güncelleme işlemlerini de gerçekleştirebilirsiniz.

Veritabanı AdıTablo AdıAlanlar
Örnek VeritabanıÜrünlerID, Adı, Fiyatı, Stok Miktarı
  • Veritabanı adı: Örnek Veritabanı
  • Tablo adı: Ürünler
  • Alanlar: ID, Adı, Fiyatı, Stok Miktarı

Yukarıdaki örnekte, "Örnek Veritabanı" adlı veritabanında "Ürünler" tablosu bulunmaktadır. Bu tabloda, her ürün için bir ID, ürün adı, fiyatı ve stok miktarı alanları bulunmaktadır. Eğer bu verileri bir DataFrame'e dönüştürmek istiyorsanız, aşağıdaki kodu kullanabilirsiniz:

import pandas as pdimport sqlite3con = sqlite3.connect("örnek_veritabanı.db")df = pd.read_sql_query("SELECT * from Ürünler", con)con.close()

Bu kod, örnek_veritabanı.db adlı SQLite veritabanına bağlanır ve "Ürünler" tablosundan tüm verileri seçer. Sonra, read_sql_query() fonksiyonunu kullanarak SQL sorgusunu çalıştırır ve verileri DataFrame'e dönüştürür. Son olarak, veritabanı bağlantısını kapatır.

SQL veritabanlarından veri çekmek ve DataFrame'e dönüştürmek, Pandas'ın veri manipülasyonu yeteneklerine erişmenizi sağlar. Bu, büyük veri kümelerini analiz etmek ve yönetmek için harika bir araçtır.


DataFrame Manipülasyonu

DataFrame manipülasyonu, Pandas kütüphanesi tarafından sağlanan çok sayıda fonksiyon yardımıyla gerçekleştirilebilir. Bu fonksiyonlar, veri setinin sütunları veya satırları üzerinde birçok farklı işlemi gerçekleştirmek için kullanılabilir.

Bir DataFrame'deki sütunların seçilmesi, [] operatörü kullanılarak yapılır. Ayrıca, bir DataFrame'in satırları loc[] veya iloc[] operatörleri kullanılarak seçilebilir. Filtreleme işlemi için de [] operatörü kullanılabilir.

DataFrame'leri birleştirmek için, merge() veya concat() fonksiyonları kullanılır. merge() işlemi, sütunlarda ortak bir anahtar veya birleştirme sütunu kullanarak iki DataFrame'i birleştirir. concat() işlemi ise, DataFrame'leri alt alta veya yan yana birleştirir.

DataFrame'in şeklini değiştirmek için, pivot(), stack() ve unstack() fonksiyonları kullanılabilir. Bu fonksiyonlar, DataFrame'in sütunlarını veya satırlarını yeniden şekillendirmek için kullanılır. pivot() fonksiyonu, DataFrame'in satırlarını sütun haline getirir. stack() fonksiyonu ise, DataFrame'deki sütunları satır haline getirir. unstack() fonksiyonu ise, DataFrame'eki satırları sütun haline getirir.

Her fonksiyon, veri setinde farklı bir gereksinimi karşılamak için kullanılır. Pandas, veri işleme ve manipülasyonu için çok güçlü bir kütüphane olduğu için, bu fonksiyonlar veri bilimcileri ve veri analistleri tarafından yaygın olarak kullanılır.


Sütun Seçimi

DataFrame'de sütun seçimi yapmak oldukça kolaydır. Sütun adını [] operatörüne ekleyerek sütunu seçebilirsiniz. Örneğin, aşağıdaki kod bloğu, sütun seçimini göstermektedir:

import pandas as pd # Veri seti oluşturmadata = {  "isim": ["Ali", "Veli", "Selim"],  "yaş": [25, 30, 35],  "cinsiyet": ["Erkek", "Erkek", "Erkek"]} df = pd.DataFrame(data) # Sütun seçmeisim_sütunu = df['isim'] print(isim_sütunu)

Bu kod örneği, "isim" sütununu seçer ve bir Seri nesnesi olarak kaydeder. Daha sonra, Seri nesnesi "isim_sütunu" değişkenine atılır. Son olarak, "isim_sütunu" değişkeninin içeriği yazdırılır.

Sütunlar arasında gezinmek için for döngüsü kullanabilirsiniz. Aşağıdaki kod örneği, sütun adlarını yazdırır:

import pandas as pd # Veri seti oluşturmadata = {  "isim": ["Ali", "Veli", "Selim"],  "yaş": [25, 30, 35],  "cinsiyet": ["Erkek", "Erkek", "Erkek"]} df = pd.DataFrame(data) # Sütun adlarını yazdırmafor sütun in df:  print(sütun)

Bu kod örneği, "df" DataFrame'indeki sütun adlarını yazdırır. Dikkat edilmesi gereken nokta, for döngüsünün doğrudan DataFrame nesnesine uygulanmasıdır.


Satır Seçimi

Veri manipülasyonu yaparken, ihtiyacımız olan bir işlem de belirli satırları seçmek olabilir. Bunun için pandas kütüphanesinde kullanabileceğimiz iki farklı operatör vardır.

loc[]: Bu operatör, satırları etiket ve indekslere göre seçmek için kullanılır. Etiket olarak, satırların adlarını veya indeksleri kullanabilirsiniz. Örneğin:

Şehir Nüfus Bölge
Ankara 6.5 milyon İç Anadolu
İstanbul 15 milyon Marmara
İzmir 4.2 milyon Ege

Yukarıdaki veritabanında, "Bölge" alanında "Marmara" olan şehirleri seçmek için şu kodu kullanabilirsiniz:

  • df.loc[df['Bölge'] == 'Marmara']

iloc[]: Bu operatör, satırları konumlarına göre (sıfırdan başlayarak) seçmek için kullanılır. Örneğin:

  • df.iloc[0:2]

Yukarıdaki kod, DataFrame'deki ilk iki satırı seçecektir.

Satır seçimi yaparken, belirli bir sütunda belirli bir değeri filtrelemek için de loc[] operatörü kullanabilirsiniz. Örneğin, "Şehir" sütununda "İzmir" olan satırları seçmek için şu kodu kullanabilirsiniz:

  • df.loc[df['Şehir'] == 'İzmir']

Satır seçimi işlemlerini kolayca gerçekleştirmek için Pandas'ın loc[] ve iloc[] operatörlerine hakim olmak önemlidir.


Filtreleme

DataFrame'deki verileri filtrelemek için, ""[]"" operatörü kullanılır. Bu operatör, belirli bir sütunun belirli bir değerine eşit olan veya eşit olmayan satırları seçerek verileri filtreler. Örneğin, tüm 'Age' sütunundaki değerleri 30'dan büyük olan satırları seçmek için kullanabileceğimiz filtreleme operatörü şu şekildedir:

Filtre Satırlar
df['Age'] > 30 Sütunları 'Age' olan ve değerleri 30'dan büyük olan tüm satırlar

Benzer şekilde, belirli bir sütunun belirli bir değerine kabaca eşit olan veya eşit olmayan satırları da seçebiliriz. Örneğin, 'Gender' sütunundaki tüm satırları seçmek için kullanabileceğimiz bir filtreleme operatörü şu şekildedir:

Filtre Satırlar
df['Gender'] == 'Female' Gender sütunu 'Female' olan tüm satırlar

Bu şekilde, istediğimiz sütunlardaki verileri filtreleyerek, işlem yapmak istediğimiz veri setini kolayca hazırlayabilir ve çıktı elde edebiliriz.


Birleştirme

Birleştirme işlemi, farklı DataFrame'leri tek bir DataFrame haline getirmek için kullanılır. Bu işlem için iki ana yöntem vardır: merge() ve concat().

merge() fonksiyonu: merge() fonksiyonu, iki DataFrame'in bir veya daha fazla sütununu kullanarak birleştirme işlemi gerçekleştirir. Bu fonksiyonun en önemli özelliği, birleştirme işleminin nasıl gerçekleştirileceğinin kontrolünü sağlayan birçok parametreye sahip olmasıdır.

Örneğin, birleştirme işleminde hangi sütunların kullanılacağı, hangi sütunlarda eşleştirme yapılacağı, birleştirme işleminin nasıl yapılacağı gibi birçok parametre belirlenebilir.

concat() fonksiyonu: concat() fonksiyonu, farklı DataFrame'leri birleştirmek için kullanılan bir başka yöntemdir. Bu fonksiyon, farklı DataFrame'lerin sütunları veya satırları birleştirilerek yeni bir DataFrame oluşturur.

Bu yöntemde, birleştirme işlemi yapılacak DataFrame'lerin boyutlarının aynı olması gerekir. Ayrıca, sütun veya satırların birleştirilme şekli de belirlenir. Örneğin, sütun bazlı birleştirme veya satır bazlı birleştirme yapılabilir.

Birleştirme işlemi, veri analizi ve manipülasyonu için oldukça önemlidir. merge() ve concat() fonksiyonlarının kullanımını öğrenmek, veri işleme sürecinde büyük fayda sağlayacaktır.


Yeniden Şekillendirme

Yeniden şekillendirme, DataFrame'in yapısını değiştirmek için kullanılır. Bu işlem için, pivot(), stack() ve unstack() fonksiyonları kullanılabilir. pivot() fonksiyonu, verileri yeniden şekillendirerek satır ve sütunlardaki verileri yeniden düzenler. Örneğin, bir satırı sütunlara dönüştürebilir veya sütunları satırlara dönüştürebilir.

stack() fonksiyonu, sütun adlarını satırlara taşır ve verileri yeniden şekillendirir. Öte yandan, unstack() fonksiyonu, satır adlarını sütunlara taşıyarak verileri yeniden şekillendirir. Bu fonksiyonlar, özellikle verileri karşılaştırmak veya analiz etmek için farklı biçimlerde sunmak istediğimizde çok yararlı olabilir.

Bu fonksiyonlar kullanımı için, verilerinizi önce uygun formata getirmeniz gerekir. Örneğin, her bir sütun için bir indeks veya çoklu indeks oluşturabilirsiniz. Pivot() fonksiyonunu kullanarak, sütunları daha dar veya uzun biçimlere dönüştürebilirsiniz. Ayrıca, istenilen sütunlara göre verilerinizi gruplandırabilir ve tablolar arasında birleştirebilirsiniz.

Bu işlemler, veri analizi ve raporlama işlemlerinde oldukça yararlıdır. Verilerinizi farklı şekillere dönüştürerek, daha iyi bir karşılaştırma veya analiz yapabilirsiniz. Bu yüzden, yeniden şekillendirme işlemlerini öğrenmek, veri manipülasyonu işlemlerinde oldukça önemlidir.


Python ve Pandas ile Gerçek Veri Örnekleri

Python ve Pandas ile gerçek veri örnekleri, veri manipülasyonunun nasıl yapıldığını anlamak için önemlidir. Bir örnek veri seti kullanarak, Python ve Pandas kütüphanelerinin veri manipülasyonu işlemleri hakkında daha iyi bir kavrayışa sahip olabilirsiniz. Bu örnek veri seti, Pandas'ın bir DataFrame yapısı olarak nasıl kullanılabileceğini göstermek için idealdir.

Örnek veri seti, bir web sitesi için ziyaretçi istatistiklerini içerebilir. Bu verileri kullanarak, birçok farklı soruyu yanıtlayabilirsiniz. Örneğin, belirli bir tarih aralığına ait ziyaretçi sayısını veya en çok ziyaret edilen sayfaları öğrenebilirsiniz. Veri manipülasyonu becerilerinizi geliştirmek için, bu verileri Pandas DataFrame yapısına dönüştürerek, sütunları ve satırları seçip filtreleyip birleştirebilirsiniz.

Ayrıca, örnek veri seti ile çeşitli veri manipülasyonu tekniklerini öğrenerek, gerçek dünya senaryolarına hazırlıklı olabilirsiniz. Örneğin, bir işletme sahibi olarak, iş faaliyetlerini izlemek için çok sayıda veri kullanabilirsiniz. Bu verileri analiz etmek ve manipüle etmek için Python ve Pandas kullanarak, iş kararlarını almak için daha iyi bir şekilde hazırlık yapabilirsiniz.