Geniş Ekran Test Deseni (16:9)
En Boy Oranı
Sınaması
(Yuvarlak görünmeli)
4x3
16x9
INTRODUCTION TO DATA SCIENCE
VERİ BİLİMİNE GİRİŞ
TURKEY Konya Technical University
Lecture 5 : Veri Almak/Toplamak
Sait Ali UYMAZ
Veri bilimi süreçlerinin ilk aşaması veriyi elde etmektir.
Veri birçok farklı kaynakta bulunabilir.
1. durum: Veri doğrudan analiz edilebilir şekilde hazır olabilir (CSV, JSON,
XML)
2. durum: Veri ilişkisel veritabanından sorgu ile elde edilebilir.
3. durum: Bir kaynaktan veriyi toplamak zorunda olabiliriz.
Web Scraping
Querying an API (web-based)
Veri Biliminde yaygın veri formatları
Sait Ali UYMAZ
CSV (comma separated value) files ** İsmine bakıp aldanmayın; alanlar boşluk, sekme
veya belirli bir karakter ile de ayrılmış olabilir.
JSON (Javascript object notation) files and string
HTML/XML(hypertext markup language/extensible markup language) files
and string
Hap Bilgi: VS Code içerisinde
#%% [markdown] ile Jupyter Notebooks
Csv dosya ile çalışmak çalıştırılabilir.
Dataframe işlemleri
dataframe["ColumnName"] – Sütunlara ulaşmak
dataframe["ColumnName"][0:5] – Satır-sütün işlemi
dataframe[["director", "cast"]][:10] - Satır-sütün işlemi
[Link]() – Veri içinde null alanları bulmak
[Link]() – Veri içinde null olmayan alanları
bulmak [3] – Csv dosyalarını parse etmek için kullanılan en
yaygın kütüphane Pandas
[Link](0) – Null alanları doldurmak
[4] – read_csv() Pandas kütüphanesinin csv dosya
[Link]() – Null alanlara sahip satırları okuma metodudur.
temizler
*** excel dosya okuma için read_excel(“filename”)
[Link] – Satır sütün sayılarını verir
[5] – dosya yapısına göre default parametreler
[Link] – Toplam hücre sayısını verir değiştirilebilir.
İlişkisel veri tabanlarından veriseti elde edilmesi
Sait Ali UYMAZ
Birçok kurum/firma kendi
veritabanına sahip ve veri bilimi
çalışmaları için gerekli veri seti
SQL sorguları ile elde edilebilir.
Data Collection : Scraping&Crawling
Sait Ali UYMAZ
Web scraping (kazıma)
Web sayfalarından programatik olarak belirli
bilgilerin toplanması
Web crawling(emekleme)
Web sayfaları ve bu sayfalardaki linkleri
gezerek belirli verilerin toplanması (ör.
Arama motorları …)
Web Scraping
Sait Ali UYMAZ
Web tabanlı veri toplama sürecinde ilk adım bazı protokoller aracılığı ile bu veriler için istek
göndermektir:
[1] – İstek göndermek için python requests
kütüphanesi kullanılır.
[3] – get metodu ile istek yapılır ve cevap response
nesnesine atanır.
[8] – Parametre göndermek istenirse params kullanılır.
Web Scraping Libraries
Web Scraping Scrapy, BeautifulSoup or Selenium
Sait Ali UYMAZ
İkinci adım indirilen HTML dosyanın işlenmesidir:
[11] –BeautifulSoup kütüphanesi HTML ve XML
dosyalarını işlemek için kullanılır.
[13] – Python içerisindeki dahili parser
kütüphanesi (çok güçlü ve kullanışlı değil) veya 3.
parti kütüphaneler kullanılabilir.
• [Link]
* HTML sayfaların yapısını oluşturan Tag • lxml
objeleri ve nitelikleri üzerinde çalışılır. • lxml-xml
• html5lib
Using APIs
Sait Ali UYMAZ
Günümüzde birçok web sayfası ve web servisleri yapısal formatta veriyi uygulama programlama
arayüzleri (API-Application Programming Interface) ile sağlamaktalar.
Bu APIs web kazıma süreçlerinde karşılaşılan birçok problemden kurtarmaktadır.
Bu web tabanlı veri sağlayan servisler REST (Representational State Transfer) API olarak
adlandırılır.
HTTP protokolü üzerinden haberleşir ve standart HTTP komutları (GET, POST, PUT, DELETE) ile
çağrılır.
Durum bilgisini saklamaz. Her istek ilgili bilgileri (account key vb.) içermelidir.
Servisten dönen veriler yapısal formatta (çoğunlukla JSON-JavaScript Object Notation) olur ve Python
dictionary (dicts) ile oldukça benzerdir bu nedenle otomatik olarak (json modülü ile) parse edilebilir.
Bazı servisler XML formatında veri sağlar. Bunları parse etmek için BeautifulSoup kütüphanesi kullanılır.
Using APIs
Sait Ali UYMAZ
Github APIs kullanarak veri almak;
Using APIs
Sait Ali UYMAZ
Belirli bir siteden veri ihtiyacı olduğunda;
“developer” yada “API” bölümleri incelenebilir
Ve bir kütüphane bulmak için “python <sitename> API” araması yapılabilir.
Twitter, Instagram, uber, youtube, udemy vb. birçok siteye ait kütüphane bulunmaktadır.
[Link]
Eğer bulamadıysanız veri bilimcisinin son çaresi web scraping
Example:Using the Udemy APIs
Sait Ali UYMAZ
Udemy bir eğitim-öğretim web sitesidir.
Yazılım geliştiricilerin istemci uygulamalarında entegrasyon için API desteği sağlar.
Bu yapı REST üzerine kurulmuştur.
Tüm yanıtlar (hatalar dahil) JSON formatındadır.
Kullanıcı doğrulama için ise OAuth 2 protokolü kullanılmaktadır.
Udemy İş Ortağı API'nin mevcut sürümü 2.0'dir. ([Link]
Udemy REST API'ye bir çağrı yapmak için bir API istemcisi yaratmanız gerekecektir.
API istemcisi: Udemy'de bir kullanıcı hesabına bağlanmış olan bir bearer token'dan oluşur.
[Link] adresinden talepte bulunmanız gerekir.
Talebiniz onaylandığında, bearer token öğeniz (client_id ve client_secret) sayfanızda görünür.
Keep “API key” and “API secret key” secret;
store them in a [Link] file
store them in environment variables
Example:Using the Udemy APIs
Sait Ali UYMAZ
[1:4] – os kütüphanesi ile ortam
değişkenlerinde tutulan token bilgileri
getirilir.
[5] – Udemy API ile entegrasyon için
Python’da <Pyudemy> kütüphanesi
mevcuttur. ($ pip install pyudemy)
[6] – kimlik doğrulama ve bağlantı
[7:9] – kütüphanedeki yöntemler (tüm
yöntem ve modeller için dokümantasyon
incelenmelidir.)
Keep “API key” and “API secret key” secret;
store them in a [Link] file
store them in environment variables
Example:Using the Udemy APIs
Sait Ali UYMAZ
[10:14] – API ile alınan kurs listesinden
belirli alanlar seçilerek bir veriseti csv
dosyaya kaydediliyor.
[15:22] – verisetinin csv dosya olarak
kaydedilmesi csv kütüphanesi yardımı
ile de yapılabilir.
Introduction to Data Science
Veri Bilimine Giriş
Department of Computer Engineering
Sait Ali UYMAZ
sauymaz@[Link]