SQL içerisinden çektiğimiz veriler ile DataFrame nasıl oluşturulur?
Pandas ile veri manipülasyonu işlemlerine başlamadan önce verilerimiz ile bir DataFrame oluşturulması gerekir. DataFrame oluşturmanın çeşitli yolları vardır. Excell, csv, HTML, SQL vb. içerisindeki verilerle oluşturabiliriz.
Şirketler, büyük veri setlerine sahip oldukları için, hem hız hemde güvenlik avantajı sebebiyle verilerini veri tabanı yönetim sistemlerinde (SQL) saklamayı tercih ederler.
Bir şirketin verileri üzerinden ML modeli geliştirmek istediğinizde veya sadece görselleştirme yapmak istediğinizde bile öncelikle verilere ulaşmanız gerekecektir. Elbette bir veritabanı yöneticisi sizin için veriyi çekip csv formatında verebilir. Ama tahmin edeceğiniz üzere sürekli veri üreten sistemlerde bu hiç verimli bir yöntem olmayacaktır.
Küçük verilerde bir anlam ifade etmezken gb seviyesinde tablolarla çalıştığımızda o tabloları olduğu gibi ram’e yüklemek istemeyiz. Verilerin SQL içerisinden çekilmesinin bir diğer avantajı, verinin ihtiyacımız olmayan kısımlarını SQL sorgularıyla, çekmek istediğimiz kısımlarını alarak filtreleme işlemi yapabilmemizdir. Bu sayede ilgili değişkenleri ve gözlemleri(Satır & Sütün) çekerek boyuttan dolayısıyla ram’den avantaj sağlarız.
Bu kadar ön bilgi yeterli hadi şimdi işe girişelim.
Örnek üzerinde SQLite veritabınını kullanıyorum.
Sisteminizde
sqlite3
kurulu olduğu varsayılmıştır.
Kütüphanelerimizi yükleyerek işe başlıyoruz.
Ben örnek olarak “SQLite” ile oluşturduğum bir veritabanını baz alıyorum. Bu sebeple benim kullandığım kütüphane sqlite3
lakin bu sizde farklı olabilir. Bu aşamada kullandığınız SQL’e göre tercih yapmalısınız.
Veritabanı bağlantısı
Yukarıda dile getirdiğim gibi ben sqlite3 üzerinde işlem yapıyorum. Burada oluşturduğunuz conn
değişkeni veritabanı bağlantınızı ifade ediyor.
SQL sorgusu ile DataFrame oluşturma
pd.read_sql_query()
metoduyla işlem yapıyoruz. Bu metot içerisine 2 zorunlu parametre alıyor bunlardan ilki SQL sorgumuz diğeri ise hangi veritabanında bu sorgunun çalıştırıldığı. İkinci parametremiz yukarıda oluşturduğumuz conn
değişkeni olacak.
DataFrame’i oynattığınızda çıktı bu şekilde olmalı.
Eğer index değeri olarak herhangi bir sütunu almak istersek.
pd.read_sql_query()
metodumuzun içerisine index_col="sütun_adi"
parametresini eklememiz yeterli.
pd.read_sql_query("select * from arabalar;", conn, index_col="id")
DataFrame’i oynattığınızda çıktı bu şekilde olmalı.
Gerisi bildiğiniz DataFrame işlemleri. Tekrar hatırlatmakta hayda var yukarıda select * from arabalar;
sorgusu yerine istediğiniz sorguyu çalıştırabilirsiniz.
Hatasız günler.