Coder Social home page Coder Social logo

evds's Introduction

EVDS

English

EVDS paketi EVDS-API üzerinden Türkiye Cumhuriyet Merkez Bankası (TCMB) tarafından Elektronik Veri Dağıtım Sistemi (EVDS) aracılığıyla yayımlanan tüm istatistiki verilere python aracılığıyla erişmenize imkan sağlar.

EVDS paketi resmi bir paket olmayıp açık kaynak kodlu olarak geliştirilmektedir.

Kurulum

evds paketini pip paket yöneticisi aracılığıyla kurabilirsiniz:

pip install evds --upgrade

Yenilikler

0.3 sürümü ile aşağıdaki değişiklikler yapıldı:

  1. SSL hatalarının giderilmesi için legacySSL parametresi eklendi. PR #8
  2. Kod içerisinde düzeltmeler yapıldı. PR #6 PR #4
  3. request session'un açık kalması nedeniyle ortaya çıkan ResourceWarning uyarısı giderildi. PR #4
  4. Pandas DataFrame numeric tiplere cast ederken ortaya çıkan FutureWarning uyarıları çıkıyordu. Bu sorun giderildi. PR #9

0.2 sürümü ile birlikte aşağıdaki özellikler eklenmiştir:

  1. get_data, get_sub_categories ve get_series fonksiyonlarına, raw parametresi eklendi. Bu parametre True olarak tanımlandığında ilgili verilere dictionary formatında erişebilirsiniz.
  2. Çeşitli hatalar giderildi.

0.1.1 sürümü ile birlikte aşağıdaki özellikler eklenmiştir:

  1. formulas parametresindeki hata giderildi.

0.1.0 sürümü ile birlikte aşağıdaki özellikler eklenmiştir:

  1. API üzerinden erişilemeyen serilere ilişkin EVDS'de yapılan güncellemeye paralel olarak tüm serilere erişim olanağı sağlanmıştır.
  2. Proxy desteği eklenmiştir.
  3. Küçük hatalar giderildi

Kullanım

Örnek kullanım, 01-01-2019 - 01-01-2020 arası USD ve EUR alış kurlarına aşağıdaki şekilde erişilebilir.

from evds import evdsAPI
evds = evdsAPI('EVDS_API_ANAHTARI')
evds.get_data(['TP.DK.USD.A.YTL','TP.DK.EUR.A.YTL'], startdate="01-01-2019", enddate="01-01-2020")

get_data fonksiyonu DataFrame return edecektir. İstenmesi halinde raw=True parametresi ile dictionary formatında ham veriye ulaşılabilir.

API Anahtarı Alma

evds paketini kullanmak için öncelikle EVDS sistemi üzerinden API Anahtarı almanız gerekmektedir. API Anahtarı almak için aşağıdaki adımları izleyiniz:

  1. EVDS sayfasına giriş yaptıktan sonra Giriş Yap ve Kayıt Ol bağlantılarını izleyerek bir EVDS hesabı oluşturun.
  2. Ardından kullanıcı adınızın altında yer alan profil bağlantısına tıklayınız.

01

  1. Profil sayfanızın alt kısmında yer alan "API Anahtarı" butonuna tıklayınız ve açılan kutucukta yer alan değeri kopyalayınız.

02

Detaylı Sorgulama

get_data fonksiyonu aşağıdaki parametreleri alır:

series

Bu parametre liste olarak tanımlanmalıdır. Ayrıca birden fazla seri bu liste içerisinde tanımlanabilir. Tanımlanması zorunludur.

startdate

Seride yer alan verilerin hangi tarihten itibaren seçileceği bu parametre ile belirlenir. Tanımlanması zorunludur.

enddate

Eğer seri üzerinde bir aralık seçimi yapılmak isteniyorsa aralığın bitiş tarihi bu parametre ile belirtilir. Tanımlanması ihtiyaridir. Tanımlanmadığı durumda startdate değerine eşit olarak tanımlanır.

raw

True olması halinde fonksiyon talep edilen veriyi DataFrame yerine dictionary return eder. Örnek kullanım:

...
evds.get_data(['TP.DK.USD.A.YTL','TP.DK.EUR.A.YTL'], startdate="01-01-2019", enddate="01-01-2020", raw=True)

aggregation_types

Seri içindeki verilerin getirilmesi esnasında kullanılacak olan toplululaştırma yöntemini ifade eder. Tanımlanması ihtiyaridir. Eğer tanımlanmamışsa seri için tanımlanan öntanımlı yöntem kullanılır. Ayrıca değer olarak string veya liste alabilir. String alması durumunda tüm seriler için aynı yöntem uygulanır. Liste olarak tanımlanırsa series parametresinde tanımlanan serilere sırasıyla belirtilen yöntemler uygulanır. Kullanılabilecek yöntemler aşağıdaki gibidir:

Yöntem Parametre Değeri
Ortalama avg
En düşük min
En yüksek max
Başlangıç first
Bitiş last
Kümülatif sum

formulas

Seri içindeki verilerin getirilmesi esnasında uygulanacak formülü ifade eder. Tanımlanması ihtiyaridir. Eğer tanımlanmamışsa seri için tanımlanan öntanımlı formül kullanılır. Ayrıca değer olarak string veya liste alabilir. String alması durumunda tüm seriler için aynı formül uygulanır. Liste olarak tanımlanırsa series parametresinde tanımlanan serilere sırasıyla belirtilen formüller uygulanır. Kullanılabilecek yöntemler aşağıdaki gibidir:

Formül Değer
Düzey (Öntanımlı) 0
Yüzde Değişim 1
Fark 2
Yıllık Yüzde Değişim 3
Yıllık Fark 4
Bir Önceki Yılın Sonuna Göre Yüzde Değişim 5
Bir Önceki Yılın Sonuna Göre Fark 6
Hareketli Ortalama 7
Hareketli Toplam 8

API formula parametresi uygulandığında orijinal değerleri None olarak yanıtladığı için, formula parametresi tanımladığınız serinin orijinal değerlere ulaşmak için aynı seriyi tekrar ekleyiniz ve formula parametresini 0 olarak tanımlayınız. Örneğin

evds.get_data(['TP.DK.USD.A.YTL','TP.DK.USD.A.YTL'],
              startdate="01-01-2019",
              enddate="01-01-2020",
              formulas=[1,0],
                )

USD için yüzde değişim ve orijinal değerlere aynı anda yukarıdaki gibi ulaşabilirsiniz.

frequency

Seri içerisinde yer alan verilerin hangi sıklıkla getireceğini ifade eder. Tanımlanması ihtiyaridir. Eğer tanımlanmamışsa seri için tanımlanan öntanımlı yayımlanma sıklığı kullanılır.Aşağıdaki değerleri alabilir.

Sıklık Değer
Günlük 1
İşgünü 2
Haftalık 3
Ayda 2 Kez 4
Aylık 5
3 Aylık 6
6 Aylık 7
Yıllık 8

Mevcut Serileri Listeleme

EVDS üzerinde veri serileri sırasıyla Ana Kategori, Alt Kategori ve Seri hiyerarşisinde sunulmaktadır.

get_data fonksiyonun kullanılması için aşağıda yer alan işlemlerin gerçekleştirilmesine gerek yoktur. Veri serisine ait kodun bilinmesi durumunda doğrudan get_data fonksiyonu kullanılabilir.

Ana kategorileri listeleme

main_categories değişkeni ile ana kategorileri listeleyebilirsiniz.

...
evds.main_categories

komut ile ana kategorileri listeleyebilirsiniz.

CATEGORY_ID TOPIC_TITLE_TR
1 PİYASA VERİLERİ
2 KURLAR
3 FAİZ İSTATİSTİKLERİ
4 PARA VE BANKA İSTATİSTİKLERİ
... ...

Alt kategorileri listeleme

Ana kategori altında yer alan alt kategorilere aşağıdaki şekilde ulaşabilirsiniz. Ayrıca raw=True parametresi ile DataFrame yerine dictionary formatında alt kategorileri ulaşılabilir.

evds.get_sub_categories('Ana kategori ID'si veya Adı')

Örnek kulllanım;

...
evds.get_sub_categories(6)
CATEGORY_ID DATAGROUP_CODE DATAGROUP_NAME
6 bie_dbafod Dış Borç Anapara ve Faiz Ödemeleri ile Diğer T...
6 bie_dbdborc Dış Borçlar-Brüt (Hazine ve Maliye Bakanlığı)
6 bie_kvdbs Kısa Vadeli Dış Borç Stoku (milyon ABD doları)
6 bie_yssk Özel Sektörün Yurt Dışından Sağladığı Uzun Vad...

Yukarıda yer alan örnekte 6'nolu kategori altında yer alan alt kategoriler listelenmiştir. Ayrıca get_sub_categories fonksiyonunda CATEGORY_ID yerine doğrudan ana kategori adı ile kullanabilirsiniz. Örneğin

...
evds.get_sub_categories("KURLAR")

Serileri listeleme

Alt kategori altında yer alan veri serilerine aşağıdaki şekilde ulaşabilirsiniz. Ayrıca raw=True parametresi ile DataFrame yerine dictionary formatında serilere ulaşılabilir.

evds.get_series('Alt kategori adı')

Örnek kulllanım;

...
evds.get_series('bie_dbdborc')
SERIE_CODE SERIE_NAME START_DATE
TP.DB.B01 1:TÜRKİYE BRÜT DIŞ BORÇ STOKU 01-10-1989
TP.DB.B02 2:KISA VADELİ BORÇLAR (Borçluya Göre) 01-10-1989
TP.DB.B03 2A:KAMU (Borçluya Göre) 01-10-1989
TP.DB.B04 2A1:GENEL YÖNETİM (Borçluya Göre) 01-10-1989
TP.DB.B05 2A1a:Merkezi Yönetim 01-10-1989

get_data() fonksiyonu aracılığıyla SERIE_CODE'u kullanarak serilere ait verilere ulaşabilirsiniz.

Proxy Tanımlama

Proxy adresinizi aşağıdaki gibi proxies parametresi ile tanımlayabilirsiniz. Ayrıca httpsVerify parametresi ile https kontrolünü devre dışı bırakabilirsiniz.

proxies = { "https" : "HTTPS_PROXY_URL"}
evds = evdsAPI('EVDS_API_ANAHTARI', proxies=proxies, httpsVerify=False)

SSLError Hatası çözümü

Sunucu sertifikası ve kullanılan python paketlerinden kaynaklı olarak SSL hatası alınabilmektedir. Bu hata durumunda legacySSL parametresi kullanılabilir:

evds = evdsAPI('EVDS_API_ANAHTARI', legacySSL=True)

evds's People

Contributors

fatihmete avatar eklekmek07 avatar metintekeci avatar cihanzereyalp avatar fthpi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.