sithuWiki commited on
Commit
b54eee8
·
verified ·
1 Parent(s): 3a13227

Update preprocessing.py

Browse files
Files changed (1) hide show
  1. preprocessing.py +13 -3
preprocessing.py CHANGED
@@ -26,6 +26,7 @@ def prepare_miner_features(
26
  power=None,
27
  efficiency=None,
28
  electricity_rate=None,
 
29
  ):
30
  """
31
  Add miner-specific features - EXACTLY 14 features.
@@ -73,9 +74,16 @@ def prepare_miner_features(
73
  else:
74
  df["efficiency"] = specs["efficiency"]
75
 
76
- # Calculate age_days (days since miner was released)
77
- release_date = pd.to_datetime(specs["release_date"])
78
- df["age_days"] = (df["date"] - release_date).dt.days
 
 
 
 
 
 
 
79
 
80
  # Days since halving
81
  df["days_since_halving"] = df["date"].apply(get_days_since_halving)
@@ -114,6 +122,7 @@ def get_latest_sequence(
114
  power=None,
115
  efficiency=None,
116
  electricity_rate=None,
 
117
  ):
118
  """
119
  Get the most recent sequence for prediction - EXACTLY 14 features in CORRECT ORDER.
@@ -134,6 +143,7 @@ def get_latest_sequence(
134
  power=power,
135
  efficiency=efficiency,
136
  electricity_rate=electricity_rate,
 
137
  )
138
 
139
  # CRITICAL: This order MUST match your training data CSV exactly!
 
26
  power=None,
27
  efficiency=None,
28
  electricity_rate=None,
29
+ release_date=None
30
  ):
31
  """
32
  Add miner-specific features - EXACTLY 14 features.
 
74
  else:
75
  df["efficiency"] = specs["efficiency"]
76
 
77
+ # ----- Age of the machine in days -----
78
+ # If the user supplied a release_date, use that; otherwise fall back
79
+ # to the miner spec's release_date (S19 Pro default).
80
+ if release_date is not None and str(release_date).strip() != "":
81
+ release_str = str(release_date).strip()
82
+ else:
83
+ release_str = specs.get("release_date", "2020-01-01")
84
+
85
+ release_dt = pd.to_datetime(release_str)
86
+ df["age_days"] = (df["date"] - release_dt).dt.days
87
 
88
  # Days since halving
89
  df["days_since_halving"] = df["date"].apply(get_days_since_halving)
 
122
  power=None,
123
  efficiency=None,
124
  electricity_rate=None,
125
+ release_date=None
126
  ):
127
  """
128
  Get the most recent sequence for prediction - EXACTLY 14 features in CORRECT ORDER.
 
143
  power=power,
144
  efficiency=efficiency,
145
  electricity_rate=electricity_rate,
146
+ release_date=release_date,
147
  )
148
 
149
  # CRITICAL: This order MUST match your training data CSV exactly!