NumPy ve Pandas Kullanarak Veri Tabanından Veri Alma

NumPy ve Pandas Kullanarak Veri Tabanından Veri Alma

NumPy ve Pandas kullanarak veri tabanlarından mümkün olan en iyi veriyi alma yolunu öğrenmek isteyenler için kapsamlı bir rehber Bu yazıda, veri tabanlarından veri alma sürecini adım adım anlatacağız ve kaynak kodlarla destekleyeceğiz Veri analizi işindeyseniz bu yazıyı kaçırmayın!

NumPy ve Pandas Kullanarak Veri Tabanından Veri Alma

Python programlama dili, veri analitiği ve işlemesi alanında oldukça yaygın olarak kullanılmaktadır. NumPy ve Pandas gibi Python kütüphaneleri, bu alanda en çok tercih edilen araçlardan biridir. Bu makalede, NumPy ve Pandas kullanarak veri tabanındaki verileri nasıl alabileceğimizi öğreneceğiz.

Veri tabanları veri depolama ve erişim için kullanılır. Veri tabanından veri alma işlemi temelde bir SQL sorgusu yazma işlemidir. NumPy kullanarak, bir SQL sorgusu yazarak veri tabanından veri alma işlemini gerçekleştirebilirsiniz. Pandas ile ise veri tabanı bağlantısı oluşturarak SQL sorguları yazarak veri tabanından veri alma işlemi yapabilirsiniz.


NumPy Kullanarak Veri Tabanından Veri Alma

NumPy Python kütüphanesi, bilimsel hesaplama işlemlerinde kullanılan bir araçtır ve veri tabanından veri alma işlemi için de oldukça etkilidir. NumPy kullanarak veri tabanından veri alma işlemi için SQL sorguları yazmak yeterlidir.

Veri tabanında bulunan verileri NumPy dizisi olarak almak istiyorsanız, sorgunuzu yazarken özellikle dikkat etmeniz gereken bazı noktalar vardır. Örneğin, veri tabanındaki tabloları nasıl seçeceğiniz, hangi sütunları alacağınız veya aralık verileri alırsanız ne kadar veri alacağınız konularında karar vermeniz gerekmektedir.

NumPy kütüphanesi ile veri tabanından veri almada, SQL sorgularının doğru bir şekilde yazılması oldukça önemli bir ayrıntıdır. Bu nedenle, uygun bir sorgu yazarak verileri aldığınızdan emin olmanız gerekir. Böylece, verileri NumPy dizisi şeklinde alarak veri analizi veya işleme işlemlerini kolayca yapabilirsiniz.


Pandas Kullanarak Veri Tabanından Veri Alma

Pandas kütüphanesi, veri tabanı bağlantısı oluşturmak ve verileri almak için kullanılabilir. Veri tabanına bağlanmak için ilk önce veri tabanı bilgilerinin girilmesi gerekir. Bu bilgiler arasında veri tabanı adı, sunucu adı, kullanıcı adı ve şifre yer alır. Pandas kütüphanesi içinde yer alan read_sql() metodu kullanılarak SQL sorguları yazılabilir ve veri tabanından veriler çekilebilir.

Veri tabanından veri alma işleminin örneği için bir SQL sorgusu yazıp bu sorgudan verileri çekebiliriz. Örneğin, "SELECT * FROM table_name" sorgusu ile veri tabanındaki tüm verileri alabiliriz. Bu sorgunun ardından read_sql() metodunu kullanarak verileri Pandas DataFrame yapısına dönüştürebiliriz.

Veri Tabanı Bilgileri
- Veri tabanı adı: database_name
- Sunucu adı: server_name
- Kullanıcı adı: user_name
- Şifre: password

Bu bilgilerin girilmesinin ardından read_sql() metodu kullanılabilir. Örneğin, df = pd.read_sql("SELECT * FROM table_name", con=engine) kodu ile veri tabanındaki tüm veriler df değişkenine atılabilir.

Veri tabanından verileri aldıktan sonra, bu verileri DataFrame yapısına dönüştürerek farklı işlemler yapabiliriz. Pandas kütüphanesi içinde yer alan pek çok metot sayesinde verileri filtreleyebilir, sıralayabilir ve gruplayabiliriz. Bu işlemler ile veri analizi yaparak çeşitli sonuçlar elde edebiliriz.


Veri Tabanı Bağlantısı Oluşturma

Veri tabanından veri alabilmek için öncelikle veri tabanına bağlanmamız gerekmektedir. Pandas kütüphanesi kullanılarak veri tabanına bağlanmak oldukça kolaydır. İlk olarak, veri tabanına bağlanmak istediğimiz ana bilgisayarda bir veri tabanı sunucusu olması gerekmektedir. Daha sonra, kullanacağımız veri tabanının adını ve hangi sunucuda olduğunu bilmemiz gerekmektedir.

Bağlantı işlemi için pandas kütüphanesinde yer alan `connect()` metodu kullanılmaktadır. Bu metot, parametre olarak veri tabanı ile ilgili bilgileri, yani sunucu adı, kullanıcı adı, şifre, port numarası ve veri tabanının adı gibi bilgileri almaktadır. Bağlantı bilgilerini bir sözlük yapısında (dictionary) girerek bağlantı sağlanabilir.

Ayrıca, bağlantı için kullanılacak veri tabanı yönetim sistemi de belirtilmelidir. Pandas kütüphanesi, SQLite, MySQL ve PostgreSQL dahil olmak üzere birçok farklı veri tabanı yönetim sistemiyle uyumludur. Bağlantı bilgileri ve veri tabanı yönetim sistemi belirlendikten sonra, `connect()` metodu kullanılarak veri tabanına bağlanabiliriz.

Bağlantı işlemi başarılı olarak gerçekleştirildikten sonra, veri tabanındaki verileri sorgulayarak ya da sorgular yazarak DataFrame yapıya dönüştürerek işlemler yapabiliriz. Bu işlemleri yapabilmek için sorgu yazmayı ve aldığımız verileri DataFrame yapıya dönüştürmeyi öğrenmemiz gerekmektedir, bu da bir sonraki başlıkta ayrıntılı bir şekilde açıklanacaktır.

Veri tabanına bağlantı işlemi ile ilgili bilgilendirme yukarıda verilmiştir. Şimdi, bağlanılan veri tabanından veri sorgulama ve DataFrame dönüştürme işlemlerine odaklanacağız.


Veri Tabanı Bilgilerinin Girmesi

Veri tabanı bağlantısı yaparken, hangi veri tabanına bağlanacağımızı, kullanıcı adı ve şifremizi girerek bağlanmamız gerekmektedir. Pandas kütüphanesi ile veri tabanı bağlantısı kurarken kullanacağımız fonksiyon "pandas.read_sql()" fonksiyonudur. Bu fonksiyonu kullanarak veri tabanına bağlanabiliriz. Bağlanırken ise, kullanacağımız argümanlar şunlardır:

  • Veri tabanı adı
  • Kullanıcı adı
  • Şifre
  • Veri tabanı sunucusu
  • Port numarası

Bu argümanları girerek, veri tabanı bağlantısı sağlayabiliriz. Örneğin:

Argümanlar Değerler
Veri tabanı adı mydb
Kullanıcı adı root
Şifre mypassword
Veri tabanı sunucusu localhost
Port numarası 3306

Bu argümanlarla birlikte "pandas.read_sql()" fonksiyonunu kullanarak veri tabanına bağlanabiliriz. Bu şekilde bağlantı işlemini tamamladıktan sonra, SQL sorgusu yazarak istediğimiz verileri çekebiliriz.


SQL Sorgusu Yazma

Pandas kütüphanesi ile veri tabanından veri çekmek için SQL sorgularını yazmamız gerekmektedir. Bunun için `read_sql_query` fonksiyonunu kullanabiliriz. Bu fonksiyona SQL sorgusunu ve verilerin çekileceği bağlantıyı parametre olarak veririz.

Öncelikle, veri tabanına bağlanmalıyız. Bağlantı bilgilerini sözlük yapısında tanımlayabiliriz. Sözlük yapısında veri tabanı adı, kullanıcı adı, şifre ve host bilgileri yer almaktadır.

```Pythonbağlantı_bilgileri = {'veri tabanı': 'veritabani_adi', 'kullanıcı': 'kullanici_adi', 'şifre': 'sifre', 'host': 'localhost'}```

Daha sonra Pandas kütüphanesi ile bağlantıyı oluşturabiliriz.

```Pythonimport pandas as pd

bağlantı = pd.connect(database=bağlantı_bilgileri['veri tabanı'], user=bağlantı_bilgileri['kullanıcı'], password=bağlantı_bilgileri['şifre'], host=bağlantı_bilgileri['host'])```

Bağlantı oluşturulduktan sonra SQL sorgumuzu yazabiliriz. Sorgumuzu bir değişkene atayarak `read_sql_query` fonksiyonuna parametre olarak verebiliriz.

```Pythonsorgu = "SELECT * FROM veri_tablosu"veriler = pd.read_sql_query(sorgu, bağlantı)```

Bu sorguya göre veri tablosundaki tüm verileri çekmiş oluruz. Sorgu içinde `SELECT` ifadesi kullanarak sadece belirli sütunları da seçebiliriz. Örneğin, `SELECT sütun1, sütun2 FROM veri_tablosu` şeklinde bir sorgu oluşturabiliriz.

Sonuç olarak, Pandas kütüphanesi SQL sorgusu yazmak için oldukça kullanışlı bir araçtır. `read_sql_query` fonksiyonunu kullanarak sorgu sonucunu veri çerçevesi formatında elde edebiliriz.


DataFrame İşlemleri

Pandas kütüphanesi veri tabanından aldığımız verileri DataFrame yapısına dönüştürerek işlemler yapmamızı sağlar. DataFrame yapısı, verilerimizi satır ve sütunlardan oluşan bir tablo şeklinde kolaylıkla görüntülememizi ve işlem yapmamızı sağlar.

DataFrame yapısı kullanarak, aldığımız verileri filtreleme, sıralama, birleştirme, toplama veya çarpma işlemlerini gerçekleştirebiliriz. Bu işlemler, verilerin yapısal değişikliklerini gözlemlememize ve veriler arasındaki ilişkileri incelememize yardımcı olur.

Ayrıca, Pandas kütüphanesiyle DataFrame yapısı kullanarak kayıp verileri bulabilir ve bu kayıp verileri uygun şekilde doldurabiliriz. Bu sayede, veri analizlerimizdeki olası hataları ve yanlış sonuçları en aza indirerek daha doğru sonuçlar elde edebiliriz.

DataFrame yapısının kullanımı oldukça basit ve etkilidir. Pandas kütüphanesi ile aldığımız verileri DataFrame yapısına dönüştürerek, veri analizi işlemlerinde daha verimli sonuçlar elde edebiliriz.


Örnek Uygulama

Bu makalede NumPy ve Pandas kullanarak veri tabanından nasıl veri alındığını örnek bir uygulama ile göstereceğiz. Örneğimizde bir kitap satış veri tabanı kullanacağız.

Öncelikle, Pandas kütüphanesi kullanarak veri tabanı bağlantısı oluşturmamız gerekiyor. Veri tabanı bilgilerimizi girdikten sonra SQL sorgusu yazarak istediğimiz verileri alabiliriz. Alınan verileri DataFrame yapısına dönüştürdükten sonra istediğimiz işlemleri yapabiliriz.

Örnek uygulamamızda, veri tabanından aldığımız kitap satış verilerini 2019 ve 2020 yıllarına göre gruplayıp toplam satış adetlerini ve kazançlarını hesaplayacağız. Daha sonra bu verileri bir tablo halinde göstereceğiz.

  • Veri tabanı bağlantısı oluşturma
  • SQL sorgusu yazma
  • Verileri DataFrame yapısına dönüştürme
  • Verileri gruplama ve işleme
  • Elde edilen sonuçları tablo halinde gösterme

İlk olarak, Pandas kütüphanesi ile veri tabanına bağlantı oluşturulurken kullanılacak veri tabanı bilgilerimizi giriyoruz. Ayrıca, veri tabanı sorgusu yazmak için gerekli olan SQLalchemy kütüphanesini de import ediyoruz.

import pandas as pdfrom sqlalchemy import create_engine# Veri tabanı bilgileridb_host = 'localhost'db_name = 'book_sales'db_user = 'myuser'db_password = 'mypassword'db_table = 'sales'# Veri tabanına bağlantı oluşturmaengine = create_engine(f'mysql+pymysql://{db_user}:{db_password}@{db_host}/{db_name}')conn = engine.connect()

Sonrasında, SQL sorgumuzu yazarak istediğimiz verileri alıyoruz. Bu örnekte 2019 ve 2020 yıllarına göre satılan kitap adetlerini ve kazançlarını hesaplayacağız.

 # SQL sorgususql = f"""SELECT YEAR(sales_date) AS year, SUM(sales_qty) AS total_qty,           SUM(sales_price) AS total_price FROM {db_table}           GROUP BY YEAR(sales_date)"""# Verileri DataFrame yapısına dönüştürmedf = pd.read_sql(sql=sql, con=conn)

Bu işlemden sonra elde ettiğimiz verileri gruplayarak istediğimiz işlemleri yaptıktan sonra sonuçları tablo halinde yazdırabiliriz.

# Verileri gruplama ve işlemedf['avg_price'] = df['total_price'] / df['total_qty']df['total_qty'] = df['total_qty'].astype(int)df['total_price'] = df['total_price'].astype(int)# Tabloyu göstermeprint(df.to_markdown(index=False))

Bu kodlar sayesinde, veri tabanından aldığımız verileri grupladık ve istediğimiz işlemleri yaptık. Sonucu ise aşağıdaki tabloda görebilirsiniz.

year total_qty total_price avg_price
2019 1000 50000 50.0
2020 1500 75000 50.0

Bu örnek uygulama ile NumPy ve Pandas kütüphaneleri kullanarak veri tabanından veri alma işlemini öğrenmiş olduk. Uygulama adımlarını ve kodları inceleyerek kendi veri tabanlarınızdan veri çekebilir ve istediğiniz işlemleri yapabilirsiniz.


Uygulama Adımları

Örnek uygulama yapmak için öncelikle NumPy ve Pandas kütüphanelerinin yüklü olması gerekmektedir. Ardından, veri tabanına bağlanmak için gerekli verileri girerek bağlantıyı sağlamalıyız. Veri tabanına bağlanıldıktan sonra, ilgili SQL sorgusunu yazarak verileri çekebiliriz.

Örnek uygulama amacıyla, bir öğrenci kayıt sistemine sahip bir veritabanından verileri çekeceğiz. İlk adım, veri tabanına bağlantı sağlamak için gerekli verilerin girilmesidir. Bağlantı sağlandıktan sonra, veri çekmek için gerekli SQL sorgusu yazılacaktır. Bu sorgu, öğrencilerin adını, soyadını ve notlarını içerecektir.

Veri tabanındaki örnek öğrenci verileri aşağıdaki gibidir:

Adı Soyadı Notu
Ali Yılmaz 85
Ahmet Kılınç 70
Ayşe Özay 90

Veri tabanından veri çekmek için, Pandas kütüphanesi ile ilgili sorguyu yazmalıyız. Örneğin, öğrencilerin adını, soyadını ve notunu içeren bir sorgu şöyle olabilir:

SELECT Adı, Soyadı, NotuFROM ogrenciler

Bu sorguyu kullanarak, veriler bir DataFrame yapısına dönüştürülebilir ve daha sonra istenen şekilde işlenebilir. Örneğin, Pandas kullanarak öğrencilerin not ortalamasını hesaplamak için aşağıdaki kod bloğunu kullanabiliriz:

df = pd.read_sql_query("SELECT Adı, Soyadı, Notu FROM ogrenciler", conn)ortalama = df['Notu'].mean()

Bu uygulama adımları sizin kullanacağınız veri tabanına ve verilere göre değişebilir. Ancak, bu örnek uygulama ile NumPy ve Pandas kütüphanelerinin veri tabanından veri alma sürecinde nasıl kullanılabileceğini öğrenmişsinizdir.


Kodların Açıklanması

Örnek uygulamada kullanılan kodlar, kodların işlevleri ve açıklamalarıyla ayrıntılı bir şekilde açıklanacaktır. Kodların anlaşılır ve okunaklı olması için yorum satırları kullanılacaktır. Kodların açıklaması aşağıdaki gibidir:
  • Veri tabanı bağlantısını oluşturmak için kullanılan kod bloğu:
  • import pandas as pdcon = pd.connect('sqlite:///database.db')

    Bu kod bloğu, pandas kütüphanesi aracılığıyla veri tabanına bağlanmayı sağlar.

  • SQL sorgusunu yazmak için kullanılan kod bloğu:
  • query = "SELECT * FROM table_name"

    Bu kod bloğu, "table_name" adlı tablodan tüm verileri seçmek için bir SQL sorgusu oluşturur.

  • DataFrame oluşturma işlemini gerçekleştirmek için kullanılan kod bloğu:
  • df = pd.read_sql(query, con)

    Bu kod bloğu, SQL sorgusu sonucunda elde edilen verileri DataFrame yapısına dönüştürür.

  • Elde edilen verileri görüntülemek için kullanılan kod bloğu:
  • print(df.head())

    Bu kod bloğu, DataFrame yapısına dönüştürülen verilerin ilk beş satırını ekrana yazdırır.

Yukarıda belirtilen kod blokları, NumPy ve Pandas kütüphanelerinin veri tabanından veri alma işlemi için kullanılan temel fonksiyonlarıdır. Bu işlevler kullanılarak farklı veritabanlarından veri çekmek mümkündür. Bununla birlikte, örnek uygulamada kullanılan SQLite veritabanı için kodların açıklamaları yukarıda belirtilmiştir.