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!
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:
- SQL sorgusunu yazmak için kullanılan kod bloğu:
- DataFrame oluşturma işlemini gerçekleştirmek için kullanılan kod bloğu:
- Elde edilen verileri görüntülemek için kullanılan kod bloğu:
|
Bu kod bloğu, pandas kütüphanesi aracılığıyla veri tabanına bağlanmayı sağlar.
|
Bu kod bloğu, "table_name" adlı tablodan tüm verileri seçmek için bir SQL sorgusu oluşturur.
|
Bu kod bloğu, SQL sorgusu sonucunda elde edilen verileri DataFrame yapısına dönüştürür.
|
Bu kod bloğu, DataFrame yapısına dönüştürülen verilerin ilk beş satırını ekrana yazdırır.