Package: evds
EVDSEnglishEVDS 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.Kurulumevds paketini pip paket yöneticisi aracılığıyla kurabilirsiniz:pip install evds --upgradeYenilikler0.3 sürümü ile aşağıdaki değişiklikler yapıldı:SSL hatalarının giderilmesi için legacySSL parametresi eklendi.PR #8Kod içerisinde düzeltmeler yapıldı.PR #6PR #4request session'un açık kalması nedeniyle ortaya çıkan ResourceWarning uyarısı giderildi.PR #4Pandas DataFrame numeric tiplere cast ederken ortaya çıkan FutureWarning uyarıları çıkıyordu. Bu sorun giderildi.PR #90.2 sürümü ile birlikte aşağıdaki özellikler eklenmiştir:get_data,get_sub_categoriesveget_seriesfonksiyonlarına,rawparametresi eklendi. Bu parametreTrueolarak tanımlandığında ilgili verilere dictionary formatında erişebilirsiniz.Çeşitli hatalar giderildi.0.1.1 sürümü ile birlikte aşağıdaki özellikler eklenmiştir:formulas parametresindeki hata giderildi.0.1.0 sürümü ile birlikte aşağıdaki özellikler eklenmiştir: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.Proxy desteği eklenmiştir.Küçük hatalar giderildiKullanımÖrnek kullanım, 01-01-2019 - 01-01-2020 arası USD ve EUR alış kurlarına aşağıdaki şekilde erişilebilir.fromevdsimportevdsAPIevds=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 halinderaw=Trueparametresi ile dictionary formatında ham veriye ulaşılabilir.API Anahtarı Almaevds paketini kullanmak için öncelikle EVDS sistemi üzerinden API Anahtarı almanız gerekmektedir. API Anahtarı almak için aşağıdaki adımları izleyiniz:EVDSsayfasına giriş yaptıktan sonra Giriş Yap ve Kayıt Ol bağlantılarını izleyerek bir EVDS hesabı oluşturun.Ardından kullanıcı adınızın altında yer alan profil bağlantısına tıklayınız.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.Detaylı Sorgulamaget_datafonksiyonu aşağıdaki parametreleri alır:seriesBu parametre liste olarak tanımlanmalıdır. Ayrıca birden fazla seri bu liste içerisinde tanımlanabilir. Tanımlanması zorunludur.startdateSeride yer alan verilerin hangi tarihten itibaren seçileceği bu parametre ile belirlenir. Tanımlanması zorunludur.enddateEğer seri üzerinde bir aralık seçimi yapılmak isteniyorsa aralığın bitiş tarihi bu parametre ile belirtilir. Tanımlanması ihtiyaridir. Tanımlanmadığı durumdastartdatedeğerine eşit olarak tanımlanır.rawTrueolması 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_typesSeri 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ırsaseriesparametresinde tanımlanan serilere sırasıyla belirtilen yöntemler uygulanır.
Kullanılabilecek yöntemler aşağıdaki gibidir:YöntemParametre DeğeriOrtalamaavgEn düşükminEn yüksekmaxBaşlangıçfirstBitişlastKümülatifsumformulasSeri 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ırsaseriesparametresinde tanımlanan serilere sırasıyla belirtilen formüller uygulanır.
Kullanılabilecek yöntemler aşağıdaki gibidir:FormülDeğerDüzey (Öntanımlı)0Yüzde Değişim1Fark2Yıllık Yüzde Değişim3Yıllık Fark4Bir Önceki Yılın Sonuna Göre Yüzde Değişim5Bir Önceki Yılın Sonuna Göre Fark6Hareketli Ortalama7Hareketli Toplam8API formula parametresi uygulandığında orijinal değerleriNoneolarak 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ğinevds.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.frequencySeri 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ıkDeğerGünlük1İşgünü2Haftalık3Ayda 2 Kez4Aylık53 Aylık66 Aylık7Yıllık8Mevcut Serileri ListelemeEVDS üzerinde veri serileri sırasıyla Ana Kategori, Alt Kategori ve Seri hiyerarşisinde sunulmaktadır.get_datafonksiyonun kullanılması için aşağıda yer alan işlemlerin gerçekleştirilmesine gerek yoktur. Veri serisine ait kodun bilinmesi durumunda doğrudanget_datafonksiyonu kullanılabilir.Ana kategorileri listelememain_categoriesdeğişkeni ile ana kategorileri listeleyebilirsiniz....evds.main_categorieskomut ile ana kategorileri listeleyebilirsiniz.CATEGORY_IDTOPIC_TITLE_TR1PİYASA VERİLERİ2KURLAR3FAİZ İSTATİSTİKLERİ4PARA VE BANKA İSTATİSTİKLERİ......Alt kategorileri listelemeAna kategori altında yer alan alt kategorilere aşağıdaki şekilde ulaşabilirsiniz. Ayrıcaraw=Trueparametresi ile DataFrame yerine dictionary formatında alt kategorileri ulaşılabilir.evds.get_sub_categories('Ana kategori ID'siveyaAdı')Örnek kulllanım;...evds.get_sub_categories(6)CATEGORY_IDDATAGROUP_CODEDATAGROUP_NAME6bie_dbafodDış Borç Anapara ve Faiz Ödemeleri ile Diğer T...6bie_dbdborcDış Borçlar-Brüt (Hazine ve Maliye Bakanlığı)6bie_kvdbsKısa Vadeli Dış Borç Stoku (milyon ABD doları)6bie_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ıcaget_sub_categoriesfonksiyonunda CATEGORY_ID yerine doğrudan ana kategori adı ile kullanabilirsiniz. Örneğin...evds.get_sub_categories("KURLAR")Serileri listelemeAlt kategori altında yer alan veri serilerine aşağıdaki şekilde ulaşabilirsiniz. Ayrıcaraw=Trueparametresi ile DataFrame yerine dictionary formatında serilere ulaşılabilir.evds.get_series('Alt kategori adı')Örnek kulllanım;...
evds.get_series('bie_dbdborc')SERIE_CODESERIE_NAMESTART_DATETP.DB.B011:TÜRKİYE BRÜT DIŞ BORÇ STOKU01-10-1989TP.DB.B022:KISA VADELİ BORÇLAR (Borçluya Göre)01-10-1989TP.DB.B032A:KAMU (Borçluya Göre)01-10-1989TP.DB.B042A1:GENEL YÖNETİM (Borçluya Göre)01-10-1989TP.DB.B052A1a:Merkezi Yönetim01-10-1989get_data()fonksiyonu aracılığıyla SERIE_CODE'u kullanarak serilere ait verilere ulaşabilirsiniz.Proxy TanımlamaProxy adresinizi aşağıdaki gibiproxiesparametresi ile tanımlayabilirsiniz. AyrıcahttpsVerifyparametresi 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)