|
7 | 7 | import numpy as np
|
8 | 8 |
|
9 | 9 |
|
| 10 | +def is_datetime(x: pd.Series) -> bool: |
| 11 | + is_dt = [ |
| 12 | + pd.api.types.is_datetime64_any_dtype(x), |
| 13 | + # pd.api.types.is_datetime64_ns_dtype(x), |
| 14 | + # pd.api.types.is_datetime64_dtype(x), |
| 15 | + # isinstance(x.dtype, pd.DatetimeTZDtype) |
| 16 | + ] |
| 17 | + |
| 18 | + return any(is_dt) |
| 19 | + |
| 20 | + |
10 | 21 | class Data:
|
11 | 22 | def __init__(self,
|
12 |
| - loadshape_df: Optional[pd.DataFrame]= None, |
13 |
| - time_series_df: Optional[pd.DataFrame]= None, |
14 |
| - features_df: Optional[pd.DataFrame]= None, |
15 |
| - settings: Optional[Data_Settings]= None |
| 23 | + loadshape_df: Optional[pd.DataFrame] = None, |
| 24 | + time_series_df: Optional[pd.DataFrame] = None, |
| 25 | + features_df: Optional[pd.DataFrame] = None, |
| 26 | + settings: Optional[Data_Settings] = None |
16 | 27 | ):
|
17 | 28 | if settings is None:
|
18 | 29 | if loadshape_df is None:
|
@@ -380,8 +391,8 @@ def _convert_timeseries_to_loadshape(
|
380 | 391 | raise ValueError(f"Missing columns in time_series_df: {missing_columns}")
|
381 | 392 |
|
382 | 393 | # Check that the datetime column is actually of type datetime
|
383 |
| - if base_df["datetime"].dtypes in _const.datetime_types: |
384 |
| - base_df["datetime"] = pd.to_datetime(base_df["datetime"], utc=True) |
| 394 | + if is_datetime(base_df["datetime"]): |
| 395 | + base_df["datetime"] = pd.to_datetime(base_df["datetime"], utc=True) #TODO: should this be utc=True? should this be applied to all datetime types? |
385 | 396 | else:
|
386 | 397 | raise ValueError("The 'datetime' column must be of datetime type")
|
387 | 398 |
|
|
0 commit comments