MCPcopy
hub / github.com/microsoft/qlib / normalize_crypto

Method normalize_crypto

scripts/data_collector/crypto/collector.py:191–215  ·  view source on GitHub ↗
(
        df: pd.DataFrame,
        calendar_list: list = None,
        date_field_name: str = "date",
        symbol_field_name: str = "symbol",
    )

Source from the content-addressed store, hash-verified

189
190 @staticmethod
191 def normalize_crypto(
192 df: pd.DataFrame,
193 calendar_list: list = None,
194 date_field_name: str = "date",
195 symbol_field_name: str = "symbol",
196 ):
197 if df.empty:
198 return df
199 df = df.copy()
200 df.set_index(date_field_name, inplace=True)
201 df.index = pd.to_datetime(df.index)
202 df = df[~df.index.duplicated(keep="first")]
203 if calendar_list is not None:
204 df = df.reindex(
205 pd.DataFrame(index=calendar_list)
206 .loc[
207 pd.Timestamp(df.index.min()).date() : pd.Timestamp(df.index.max()).date()
208 + pd.Timedelta(hours=23, minutes=59)
209 ]
210 .index
211 )
212 df.sort_index(inplace=True)
213
214 df.index.names = [date_field_name]
215 return df.reset_index()
216
217 def normalize(self, df: pd.DataFrame) -> pd.DataFrame:
218 df = self.normalize_crypto(df, self._calendar_list, self._date_field_name, self._symbol_field_name)

Callers 1

normalizeMethod · 0.95

Calls 5

copyMethod · 0.80
dateMethod · 0.80
maxMethod · 0.80
reindexMethod · 0.45
sort_indexMethod · 0.45

Tested by

no test coverage detected