kaganseyda commited on
Commit
7b086fe
·
verified ·
1 Parent(s): 00e57f5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -21
app.py CHANGED
@@ -13,33 +13,39 @@ TALIB_PATTERNS = sorted([name for name in dir(talib) if name.startswith("CDL")])
13
  def clean_ohlc(df):
14
  """
15
  OHLC verisini TA-Lib için temizle:
16
- - Open/High/Low/Close sütunlarını numeric'e çevir
17
- - NaN içeren satırları at
18
- - Index'in DatetimeIndex olduğundan emin ol
 
19
  """
20
- required_cols = ['Open', 'High', 'Low', 'Close']
21
- # Bazı veri setlerinde sütun isimleri farklı olabilir; garanti için küçük harfle kontrol etme istersen ekle
22
- for c in required_cols:
23
- if c not in df.columns:
24
- raise ValueError(f"Veri setinde required sütun yok: {c}")
25
-
26
- # Numeric dönüşümü (virgüllü string gibi durumlar için)
27
- df[required_cols] = df[required_cols].apply(pd.to_numeric, errors='coerce')
28
- # Eksik OHLC içeren satırları at
29
- df = df.dropna(subset=required_cols).copy()
 
 
 
 
 
 
 
 
 
30
  if not isinstance(df.index, pd.DatetimeIndex):
31
- # Eğer index Date sütunu varsa onu index yap
32
- if 'Date' in df.columns:
33
- try:
34
- df['Date'] = pd.to_datetime(df['Date'])
35
- df = df.set_index('Date')
36
- except Exception:
37
- pass
38
- # Son kontrol
39
  if len(df) == 0:
40
  raise ValueError("Veri temizlendikten sonra boş kaldı.")
41
  return df
42
 
 
43
  def find_candlestick_patterns(df, pattern_name):
44
  """
45
  Verilen formasyon adını kullanarak grafikte işaretleme yapan fonksiyon.
 
13
  def clean_ohlc(df):
14
  """
15
  OHLC verisini TA-Lib için temizle:
16
+ - Sütun isimlerini normalize eder (büyük-küçük farkı önemsiz)
17
+ - Open/High/Low/Close sütunlarını numeric'e çevirir
18
+ - NaN içeren satırları atar
19
+ - Index'i DatetimeIndex'e çevirir
20
  """
21
+ # Tüm sütun adlarını lowercase yap
22
+ df.columns = [c.lower() for c in df.columns]
23
+
24
+ # bazen 'adj close' falan da gelir, onları göz ardı ediyoruz
25
+ required = ['open', 'high', 'low', 'close']
26
+ for col in required:
27
+ if col not in df.columns:
28
+ raise ValueError(f"Veri setinde '{col}' sütunu yok. Mevcut: {list(df.columns)}")
29
+
30
+ # sadece gerekli sütunları al
31
+ df = df[required].copy()
32
+
33
+ # numeric dönüşüm
34
+ df = df.apply(pd.to_numeric, errors='coerce')
35
+
36
+ # eksikleri at
37
+ df = df.dropna(subset=required)
38
+
39
+ # index datetime değilse düzelt
40
  if not isinstance(df.index, pd.DatetimeIndex):
41
+ df.index = pd.to_datetime(df.index, errors='coerce')
42
+ df = df.dropna(subset=['open', 'high', 'low', 'close'])
43
+
 
 
 
 
 
44
  if len(df) == 0:
45
  raise ValueError("Veri temizlendikten sonra boş kaldı.")
46
  return df
47
 
48
+
49
  def find_candlestick_patterns(df, pattern_name):
50
  """
51
  Verilen formasyon adını kullanarak grafikte işaretleme yapan fonksiyon.