Skip to content

Instantly share code, notes, and snippets.

@mebaysan
Created January 11, 2021 20:20
Show Gist options
  • Save mebaysan/6e43659a046dfdd9ac9b373112445f80 to your computer and use it in GitHub Desktop.
Save mebaysan/6e43659a046dfdd9ac9b373112445f80 to your computer and use it in GitHub Desktop.
Döviz kurlarını çevirmek için kullandığım fonksiyon
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