buraktrk commited on
Commit
3dcfedf
·
verified ·
1 Parent(s): 9cf52d0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -14
app.py CHANGED
@@ -22,6 +22,7 @@ def safe_div(a: pd.Series, b: pd.Series) -> pd.Series:
22
  return (a / b.replace(0, np.nan)).fillna(0)
23
 
24
  def compute_ratios(df: pd.DataFrame) -> pd.DataFrame:
 
25
  for col in [c for c in df.columns if c != "Periyot"]:
26
  df[col] = pd.to_numeric(df[col], errors="coerce").fillna(0)
27
 
@@ -29,36 +30,34 @@ def compute_ratios(df: pd.DataFrame) -> pd.DataFrame:
29
  tl = df["Kısa Vadeli Yükümlülükler"] + df["Uzun Vadeli Yükümlülükler"]
30
 
31
  df["Cari Oran"] = safe_div(df["Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
32
- df["Asit Test Oranı"] = safe_div(
33
- df["Dönen Varlıklar"] - df["Stoklar"] - df["Diğer Dönen Varlıklar"],
34
- df["Kısa Vadeli Yükümlülükler"])
35
  df["Nakit Oranı"] = safe_div(df["Nakit ve Nakit Benzerleri"], df["Kısa Vadeli Yükümlülükler"])
36
- df["Faaliyet Kar Marjı"] = safe_div(df["FAALİYET KARI (ZARARI)"]*100, df["Satış Gelirleri"])
37
- df["Brüt Kar Marjı (%)"] = safe_div(df["Ticari Faaliyetlerden Brüt Kar (Zarar)"]*100,
38
- df["Satış Gelirleri"])
39
- df["Net Kar Marjı"] = safe_div(df["Dönem Net Kar/Zararı"]*100, df["Satış Gelirleri"])
40
- df["Aktif Karlılık (%)"] = safe_div(df["Dönem Net Kar/Zararı"]*100, ta)
41
  df["Aktif Devir Hızı"] = safe_div(df["Satış Gelirleri"], ta)
42
  df["Dönen Varlıklar Devir Hızı"] = safe_div(df["Dönen Varlıklar"], df["Satış Gelirleri"])
43
  df["Stok Devir Hızı"] = -safe_div(df["Satışların Maliyeti (-)"], df["Stoklar"])
44
- df["Finansal Kaldıraç"] = safe_div(tl, ta)*100
45
  df["Kısa Vade Borç / Aktif"] = safe_div(df["Kısa Vadeli Yükümlülükler"], ta)
46
  df["Kısa Vade Borç / Özsermaye"] = safe_div(df["Kısa Vadeli Yükümlülükler"], df["Özkaynaklar"])
47
  df["Kısa Vade Borç / Toplam Borç"] = safe_div(df["Kısa Vadeli Yükümlülükler"], tl)
48
  df["Özsermaye / Aktif"] = safe_div(df["Özkaynaklar"], ta)
49
- df["Duran Varlıklar / Aktif "] = safe_div(df["Duran Varlıklar"]*100, ta)
50
- df["Dönen Varlıklar / Aktif (%)"] = safe_div(df["Dönen Varlıklar"]*100, ta)
51
  df["Özsermaye / Maddi Duran Varlıklar"] = safe_div(df["Özkaynaklar"], df["Maddi Duran Varlıklar"])
52
  df["Finansman Gider / Net Satış"] = safe_div(df["Finansman Giderleri"], df["Satış Gelirleri"])
53
- df["Esas Faaliyet Karı / Kısa Vadeli Borç"] = safe_div(
54
- df["Net Faaliyet Kar/Zararı"], df["Kısa Vadeli Yükümlülükler"])
55
- df["ROCE Oranı"] = safe_div(df["FAALİYET KARI (ZARARI)"]*100, ta)
56
 
 
57
  X1 = safe_div(df["Dönen Varlıklar"] - df["Kısa Vadeli Yükümlülükler"], ta)
58
  X2 = safe_div(df["Geçmiş Yıllar Kar/Zararları"] + df["Dönem Net Kar/Zararı"], ta)
59
  X3 = safe_div(df["SÜRDÜRÜLEN FAALİYETLER VERGİ ÖNCESİ KARI (ZARARI)"], ta)
60
  X4 = safe_div(df["Özkaynaklar"], tl)
61
  X5 = safe_div(df["Satış Gelirleri"], ta)
 
62
  df["Altman Z-Skoru"] = 1.2*X1 + 1.4*X2 + 3.3*X3 + 0.6*X4 + X5
63
 
64
  Z1 = safe_div(df["Dönem Net Kar/Zararı"], ta)
@@ -66,12 +65,17 @@ def compute_ratios(df: pd.DataFrame) -> pd.DataFrame:
66
  Z3 = safe_div(df["Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
67
  df["Zmijewski Skoru"] = -4.3 - 4.5*Z1 + 5.7*Z2 - 0.004*Z3
68
 
 
 
 
69
  L6 = safe_div(safe_div(df["Nakit ve Nakit Benzerleri"], df["Kısa Vadeli Yükümlülükler"]), tl)
70
  L7 = safe_div(tl, ta)
71
  df["L Model Skoru"] = (-0.113*X1 + 0.238*X2 - 0.052*X3 - 0.051*X4 +
72
  0.011*X5 + 0.729*L6 - 0.639*L7)
 
73
  return df
74
 
 
75
  # ------------------------ MODEL EĞİTİMİ ------------------------
76
  df = pd.read_csv("refined_data.csv")
77
  df["Görüs Tipi"] = df["Görüs Tipi"].apply(
 
22
  return (a / b.replace(0, np.nan)).fillna(0)
23
 
24
  def compute_ratios(df: pd.DataFrame) -> pd.DataFrame:
25
+ # Tüm sayısal sütunları güvenli şekilde float'a çevir, boşlukları temizle
26
  for col in [c for c in df.columns if c != "Periyot"]:
27
  df[col] = pd.to_numeric(df[col], errors="coerce").fillna(0)
28
 
 
30
  tl = df["Kısa Vadeli Yükümlülükler"] + df["Uzun Vadeli Yükümlülükler"]
31
 
32
  df["Cari Oran"] = safe_div(df["Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
33
+ df["Asit Test Oranı"] = safe_div(df["Dönen Varlıklar"] - df["Stoklar"] - df["Diğer Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
 
 
34
  df["Nakit Oranı"] = safe_div(df["Nakit ve Nakit Benzerleri"], df["Kısa Vadeli Yükümlülükler"])
35
+ df["Faaliyet Kar Marjı"] = safe_div(df["FAALİYET KARI (ZARARI)"] * 100, df["Satış Gelirleri"])
36
+ df["Brüt Kar Marjı (%)"] = safe_div(df["Ticari Faaliyetlerden Brüt Kar (Zarar)"] * 100, df["Satış Gelirleri"])
37
+ df["Net Kar Marjı"] = safe_div(df["Dönem Net Kar/Zararı"] * 100, df["Satış Gelirleri"])
38
+ df["Aktif Karlılık (%)"] = safe_div(df["Dönem Net Kar/Zararı"] * 100, ta)
 
39
  df["Aktif Devir Hızı"] = safe_div(df["Satış Gelirleri"], ta)
40
  df["Dönen Varlıklar Devir Hızı"] = safe_div(df["Dönen Varlıklar"], df["Satış Gelirleri"])
41
  df["Stok Devir Hızı"] = -safe_div(df["Satışların Maliyeti (-)"], df["Stoklar"])
42
+ df["Finansal Kaldıraç"] = safe_div(tl, ta) * 100
43
  df["Kısa Vade Borç / Aktif"] = safe_div(df["Kısa Vadeli Yükümlülükler"], ta)
44
  df["Kısa Vade Borç / Özsermaye"] = safe_div(df["Kısa Vadeli Yükümlülükler"], df["Özkaynaklar"])
45
  df["Kısa Vade Borç / Toplam Borç"] = safe_div(df["Kısa Vadeli Yükümlülükler"], tl)
46
  df["Özsermaye / Aktif"] = safe_div(df["Özkaynaklar"], ta)
47
+ df["Duran Varlıklar / Aktif "] = safe_div(df["Duran Varlıklar"] * 100, ta)
48
+ df["Dönen Varlıklar / Aktif (%)"] = safe_div(df["Dönen Varlıklar"] * 100, ta)
49
  df["Özsermaye / Maddi Duran Varlıklar"] = safe_div(df["Özkaynaklar"], df["Maddi Duran Varlıklar"])
50
  df["Finansman Gider / Net Satış"] = safe_div(df["Finansman Giderleri"], df["Satış Gelirleri"])
51
+ df["Esas Faaliyet Karı / Kısa Vadeli Borç"] = safe_div(df["Net Faaliyet Kar/Zararı"], df["Kısa Vadeli Yükümlülükler"])
52
+ df["ROCE Oranı"] = safe_div(df["FAALİYET KARI (ZARARI)"] * 100, ta)
 
53
 
54
+ # Ek hesaplamalar için ara değişkenler
55
  X1 = safe_div(df["Dönen Varlıklar"] - df["Kısa Vadeli Yükümlülükler"], ta)
56
  X2 = safe_div(df["Geçmiş Yıllar Kar/Zararları"] + df["Dönem Net Kar/Zararı"], ta)
57
  X3 = safe_div(df["SÜRDÜRÜLEN FAALİYETLER VERGİ ÖNCESİ KARI (ZARARI)"], ta)
58
  X4 = safe_div(df["Özkaynaklar"], tl)
59
  X5 = safe_div(df["Satış Gelirleri"], ta)
60
+
61
  df["Altman Z-Skoru"] = 1.2*X1 + 1.4*X2 + 3.3*X3 + 0.6*X4 + X5
62
 
63
  Z1 = safe_div(df["Dönem Net Kar/Zararı"], ta)
 
65
  Z3 = safe_div(df["Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
66
  df["Zmijewski Skoru"] = -4.3 - 4.5*Z1 + 5.7*Z2 - 0.004*Z3
67
 
68
+ S1, S2, S3, S4 = X1, X3, safe_div(df["SÜRDÜRÜLEN FAALİYETLER VERGİ ÖNCESİ KARI (ZARARI)"], df["Kısa Vadeli Yükümlülükler"]), X5
69
+ df["Springate Skoru"] = 1.03 * S1 + 3.07 * S2 + 0.66 * S3 + 0.4 * S4
70
+
71
  L6 = safe_div(safe_div(df["Nakit ve Nakit Benzerleri"], df["Kısa Vadeli Yükümlülükler"]), tl)
72
  L7 = safe_div(tl, ta)
73
  df["L Model Skoru"] = (-0.113*X1 + 0.238*X2 - 0.052*X3 - 0.051*X4 +
74
  0.011*X5 + 0.729*L6 - 0.639*L7)
75
+
76
  return df
77
 
78
+
79
  # ------------------------ MODEL EĞİTİMİ ------------------------
80
  df = pd.read_csv("refined_data.csv")
81
  df["Görüs Tipi"] = df["Görüs Tipi"].apply(