Created
January 11, 2021 20:20
-
-
Save mebaysan/6e43659a046dfdd9ac9b373112445f80 to your computer and use it in GitHub Desktop.
Döviz kurlarını çevirmek için kullandığım fonksiyon
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DOVIZ_KURLAR = { | |
'Alış': { | |
'2015': { | |
'USD': 2.71, | |
'EUR': 3.01, | |
'GBP': 4.15, | |
}, | |
'2016': { | |
'USD': 3.01, | |
'EUR': 3.33, | |
'GBP': 4.07, | |
}, | |
'2017': { | |
'USD': 3.64, | |
'EUR': 4.11, | |
'GBP': 4.68, | |
}, | |
'2018': { | |
'USD': 4.83, | |
'EUR': 5.67, | |
'GBP': 6.40, | |
}, | |
'2019': { | |
'USD': 5.67, | |
'EUR': 6.34, | |
'GBP': 7.22, | |
}, | |
'2020': { | |
'USD': 6.90, | |
'EUR': 7.83, | |
'GBP': 8.80, | |
} | |
}, | |
'Satış': { | |
'2015': { | |
'USD': 2.72, | |
'EUR': 3.02, | |
}, | |
'2016': { | |
'USD': 3.02, | |
'EUR': 3.34, | |
}, | |
'2017': { | |
'USD': 3.65, | |
'EUR': 4.12, | |
}, | |
'2018': { | |
'USD': 4.83, | |
'EUR': 5.67, | |
}, | |
'2019': { | |
'USD': 5.68, | |
'EUR': 6.36, | |
}, | |
'2020': { | |
'USD': 6.91, | |
'EUR': 7.85, | |
} | |
} | |
} | |
def doviz_cevir(islem, doviz, yil, tutar): | |
tutar = float(tutar) | |
if islem == 'Alış': | |
return tutar * DOVIZ_KURLAR[islem][yil][doviz] | |
return tutar / DOVIZ_KURLAR[islem][yil][doviz] | |
def doviz_to_usd(cols, doviz_col_name, toplam_col_name, yil_col_name="Yıl"): | |
""" | |
Parametre olarak kolonları alır | |
Döviz cinsinin hangi kolonda tutulduğunu doviz_col_name parametresinde veririz | |
Dövizin toplam tutarının hangi kolonda tutulduğunu toplam_col_name parametresinde veririz | |
Yıl değişkeni sayesinde DOVIZ_KURLAR sabitinden kur değerlerini yakalarız. Default olarak DataFrame'in Yıl adında bir değişkeni olduğunu varsayar | |
Gelen döviz tipine göre Yıl değişkeninden kur sabitini alır ve döviz cinsinden toplam tutarı Dolar'a çevirerek return eder | |
Fonksiyon kullanılırken df[['Gelecek kolon 1','Gelecek kolon 2','Gelecek kolon 3']].apply(doviz_to_usd,axis=1,args=('Döviz Cinsi','Toplam Tutar','Yıl')) şeklinde kullanılır. Seçilen kolonlar otomatik olarak cols parametresine uygulanır | |
""" | |
sonuc = 0 | |
doviz_cinsi = cols[doviz_col_name] | |
toplam_harcama = cols[toplam_col_name] | |
yil = cols[yil_col_name] | |
if doviz_cinsi == 'ABD Doları': | |
sonuc = toplam_harcama | |
elif doviz_cinsi == 'Euro': | |
tl = doviz_cevir('Alış', 'EUR', str(yil), str(toplam_harcama)) | |
sonuc = doviz_cevir('Satış', 'USD', str(yil), str(tl)) | |
elif doviz_cinsi == 'İngiliz Sterlini': | |
tl = doviz_cevir('Alış', 'GBP', str(yil), str(toplam_harcama)) | |
sonuc = doviz_cevir('Satış', 'USD', str(yil), str(tl)) | |
elif doviz_cinsi == 'Türk Lirası': | |
sonuc = doviz_cevir('Satış', 'USD', str(yil), str(toplam_harcama)) | |
return sonuc | |
def doviz_to_euro(cols, doviz_col_name, toplam_col_name, yil_col_name="Yıl"): | |
""" | |
Parametre olarak kolonları alır | |
Döviz cinsinin hangi kolonda tutulduğunu doviz_col_name parametresinde veririz | |
Dövizin toplam tutarının hangi kolonda tutulduğunu toplam_col_name parametresinde veririz | |
Yıl değişkeni sayesinde DOVIZ_KURLAR sabitinden kur değerlerini yakalarız. Default olarak DataFrame'in Yıl adında bir değişkeni olduğunu varsayar | |
Gelen döviz tipine göre Yıl değişkeninden kur sabitini alır ve döviz cinsinden toplam tutarı Euro'ya çevirerek return eder | |
Fonksiyon kullanılırken df[['Gelecek kolon 1','Gelecek kolon 2','Gelecek kolon 3']].apply(doviz_to_euro,axis=1,args=('Döviz Cinsi','Toplam Tutar','Yıl')) şeklinde kullanılır. Seçilen kolonlar otomatik olarak cols parametresine uygulanır | |
""" | |
sonuc = 0 | |
doviz_cinsi = cols[doviz_col_name] | |
toplam_harcama = cols[toplam_col_name] | |
yil = cols[yil_col_name] | |
if doviz_cinsi == 'ABD Doları': | |
tl = doviz_cevir('Alış', 'USD', str(yil), str(toplam_harcama)) | |
sonuc = doviz_cevir('Satış', 'EUR', str(yil), str(tl)) | |
elif doviz_cinsi == 'Euro': | |
sonuc = toplam_harcama | |
elif doviz_cinsi == 'İngiliz Sterlini': | |
tl = doviz_cevir('Alış', 'GBP', str(yil), str(toplam_harcama)) | |
sonuc = doviz_cevir('Satış', 'EUR', str(yil), str(tl)) | |
elif doviz_cinsi == 'Türk Lirası': | |
sonuc = doviz_cevir('Satış', 'EUR', str(yil), str(toplam_harcama)) | |
return sonuc | |
def doviz_to_tl(cols, doviz_col_name, toplam_col_name, yil_col_name="Yıl"): | |
""" | |
Parametre olarak kolonları alır | |
Döviz cinsinin hangi kolonda tutulduğunu doviz_col_name parametresinde veririz | |
Dövizin toplam tutarının hangi kolonda tutulduğunu toplam_col_name parametresinde veririz | |
Yıl değişkeni sayesinde DOVIZ_KURLAR sabitinden kur değerlerini yakalarız. Default olarak DataFrame'in Yıl adında bir değişkeni olduğunu varsayar | |
Gelen döviz tipine göre Yıl değişkeninden kur sabitini alır ve döviz cinsinden toplam tutarı TL'ye çevirerek return eder | |
Fonksiyon kullanılırken df[['Gelecek kolon 1','Gelecek kolon 2','Gelecek kolon 3']].apply(doviz_to_tl,axis=1,args=('Döviz Cinsi','Toplam Tutar','Yıl')) şeklinde kullanılır. Seçilen kolonlar otomatik olarak cols parametresine uygulanır | |
""" | |
sonuc = 0 | |
doviz_cinsi = cols[doviz_col_name] | |
toplam_harcama = cols[toplam_col_name] | |
yil = cols[yil_col_name] | |
if doviz_cinsi == 'ABD Doları': | |
sonuc = doviz_cevir('Alış', 'USD', str(yil), str(toplam_harcama)) | |
elif doviz_cinsi == 'Euro': | |
sonuc = doviz_cevir('Alış', 'EUR', str(yil), str(toplam_harcama)) | |
elif doviz_cinsi == 'İngiliz Sterlini': | |
sonuc = doviz_cevir('Alış', 'GBP', str(yil), str(toplam_harcama)) | |
elif doviz_cinsi == 'Türk Lirası': | |
sonuc = toplam_harcama | |
return sonuc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment