spotforecast2 0.2.1__py3-none-any.whl → 0.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- spotforecast2/data/fetch_data.py +23 -13
- spotforecast2/processing/n2n_predict.py +1 -1
- spotforecast2/processing/n2n_predict_with_covariates.py +1 -1
- {spotforecast2-0.2.1.dist-info → spotforecast2-0.2.2.dist-info}/METADATA +1 -1
- {spotforecast2-0.2.1.dist-info → spotforecast2-0.2.2.dist-info}/RECORD +6 -6
- {spotforecast2-0.2.1.dist-info → spotforecast2-0.2.2.dist-info}/WHEEL +0 -0
spotforecast2/data/fetch_data.py
CHANGED
|
@@ -44,7 +44,8 @@ def get_data_home(data_home: Optional[Union[str, Path]] = None) -> Path:
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
def fetch_data(
|
|
47
|
-
filename:
|
|
47
|
+
filename: Optional[str] = None,
|
|
48
|
+
dataframe: Optional[pd.DataFrame] = None,
|
|
48
49
|
columns: Optional[list] = None,
|
|
49
50
|
index_col: int = 0,
|
|
50
51
|
parse_dates: bool = True,
|
|
@@ -54,13 +55,15 @@ def fetch_data(
|
|
|
54
55
|
"""Fetches the integrated raw dataset from a CSV file or processes a DataFrame.
|
|
55
56
|
|
|
56
57
|
Args:
|
|
57
|
-
filename (str
|
|
58
|
-
Filename of the CSV file containing the dataset
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
filename (str, optional):
|
|
59
|
+
Filename of the CSV file containing the dataset. Must be located in the
|
|
60
|
+
data home directory. If both filename and dataframe are None, defaults to "data_in.csv".
|
|
61
|
+
dataframe (pd.DataFrame, optional):
|
|
62
|
+
A pandas DataFrame to process. If provided, it will be processed with
|
|
63
|
+
proper timezone handling. Mutually exclusive with filename.
|
|
61
64
|
columns (list, optional):
|
|
62
65
|
List of columns to be included in the dataset. If None, all columns are included.
|
|
63
|
-
If an empty list is provided, a ValueError is
|
|
66
|
+
If an empty list is provided, a ValueError is raised.
|
|
64
67
|
index_col (int):
|
|
65
68
|
Column index to be used as the index (only used when loading from CSV).
|
|
66
69
|
parse_dates (bool):
|
|
@@ -75,37 +78,44 @@ def fetch_data(
|
|
|
75
78
|
pd.DataFrame: The integrated raw dataset with UTC timezone.
|
|
76
79
|
|
|
77
80
|
Raises:
|
|
78
|
-
ValueError: If columns is an empty list.
|
|
81
|
+
ValueError: If columns is an empty list or if both filename and dataframe are provided.
|
|
79
82
|
FileNotFoundError: If CSV file does not exist.
|
|
80
83
|
|
|
81
84
|
Examples:
|
|
82
|
-
Load from CSV:
|
|
85
|
+
Load from CSV (default):
|
|
83
86
|
>>> from spotforecast2.data.fetch_data import fetch_data
|
|
84
87
|
>>> data = fetch_data(columns=["col1", "col2"])
|
|
85
88
|
>>> data.head()
|
|
86
89
|
Header1 Header2 Header3
|
|
87
90
|
|
|
91
|
+
Load from specific CSV:
|
|
92
|
+
>>> data = fetch_data(filename="custom_data.csv")
|
|
93
|
+
|
|
88
94
|
Process a DataFrame:
|
|
89
95
|
>>> import pandas as pd
|
|
90
96
|
>>> df = pd.DataFrame({"value": [1, 2, 3]},
|
|
91
97
|
... index=pd.date_range("2024-01-01", periods=3, freq="h"))
|
|
92
|
-
>>> data = fetch_data(
|
|
98
|
+
>>> data = fetch_data(dataframe=df, timezone="Europe/Berlin")
|
|
93
99
|
>>> data.index.tz
|
|
94
100
|
<UTC>
|
|
95
101
|
"""
|
|
96
102
|
if columns is not None and len(columns) == 0:
|
|
97
103
|
raise ValueError("columns must be specified and cannot be empty.")
|
|
104
|
+
|
|
105
|
+
if filename is not None and dataframe is not None:
|
|
106
|
+
raise ValueError("Cannot specify both filename and dataframe. Please provide only one.")
|
|
98
107
|
|
|
99
|
-
#
|
|
100
|
-
if
|
|
101
|
-
# Use Data.from_dataframe for proper timezone handling
|
|
108
|
+
# Process DataFrame if provided
|
|
109
|
+
if dataframe is not None:
|
|
102
110
|
dataset = Data.from_dataframe(
|
|
103
|
-
df=
|
|
111
|
+
df=dataframe,
|
|
104
112
|
timezone=timezone,
|
|
105
113
|
columns=columns,
|
|
106
114
|
)
|
|
107
115
|
else:
|
|
108
116
|
# Load from CSV file
|
|
117
|
+
if filename is None:
|
|
118
|
+
filename = "data_in.csv"
|
|
109
119
|
csv_path = get_data_home() / filename
|
|
110
120
|
if not Path(csv_path).is_file():
|
|
111
121
|
raise FileNotFoundError(f"The file {csv_path} does not exist.")
|
|
@@ -319,7 +319,7 @@ def n2n_predict(
|
|
|
319
319
|
if data is not None:
|
|
320
320
|
if verbose:
|
|
321
321
|
print("Using provided dataframe...")
|
|
322
|
-
data = fetch_data(
|
|
322
|
+
data = fetch_data(dataframe=data, columns=TARGET)
|
|
323
323
|
else:
|
|
324
324
|
if verbose:
|
|
325
325
|
print("Fetching data from CSV...")
|
|
@@ -876,7 +876,7 @@ def n2n_predict_with_covariates(
|
|
|
876
876
|
else:
|
|
877
877
|
if verbose:
|
|
878
878
|
print(" Using provided dataframe...")
|
|
879
|
-
data = fetch_data(
|
|
879
|
+
data = fetch_data(dataframe=data, timezone=timezone)
|
|
880
880
|
|
|
881
881
|
target_columns = data.columns.tolist()
|
|
882
882
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
spotforecast2/__init__.py,sha256=X9sBx15iz8yqr9iDJcrGJM5nhvnpaczXto4XV_GtfhE,59
|
|
2
2
|
spotforecast2/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
spotforecast2/data/data.py,sha256=HEgr-FULaqHvuMeKTviOgYyo3GbxpGRTo3ZnmIU9w2Y,4422
|
|
4
|
-
spotforecast2/data/fetch_data.py,sha256=
|
|
4
|
+
spotforecast2/data/fetch_data.py,sha256=N99W-NNTC2hbXmx1FofITsvXJfHj9py4r5Kllf5950Y,8464
|
|
5
5
|
spotforecast2/exceptions.py,sha256=6gOji-3cP-YAisPoxXCcrEEbjTnfPN1YqEhGYhmyZ8Y,20499
|
|
6
6
|
spotforecast2/forecaster/__init__.py,sha256=BbCOS2ouKcPC9VzcdprllVyqlZIyAWXCOvUAiInxDi4,140
|
|
7
7
|
spotforecast2/forecaster/base.py,sha256=rXhcjY4AMpyQhkpbtLIA8OOrGEb8fU57SQiyeR9c9DQ,16748
|
|
@@ -31,8 +31,8 @@ spotforecast2/preprocessing/imputation.py,sha256=lmH-HumI_QLLm9aMESe_oZq84Axn60w
|
|
|
31
31
|
spotforecast2/preprocessing/outlier.py,sha256=jZxAR870QtYner7b4gXk6LLGJw0juLq1VU4CGklYd3c,4208
|
|
32
32
|
spotforecast2/preprocessing/split.py,sha256=mzzt5ltUZdVzfWtBBTQjp8E2MyqVdWUFtz7nN11urbU,5011
|
|
33
33
|
spotforecast2/processing/agg_predict.py,sha256=VKlruB0x-eJKokkHyJxR87rZ4m53si3ODbrd0ibPlow,2378
|
|
34
|
-
spotforecast2/processing/n2n_predict.py,sha256=
|
|
35
|
-
spotforecast2/processing/n2n_predict_with_covariates.py,sha256=
|
|
34
|
+
spotforecast2/processing/n2n_predict.py,sha256=Sr2AFaCZxP-tbsxlEjiSdjBU-mtBiDa_f6rJLEJov64,14912
|
|
35
|
+
spotforecast2/processing/n2n_predict_with_covariates.py,sha256=PyB3X1rNb18JBC72YiN12hUg5eSjUAsW4M-atczmCSQ,40914
|
|
36
36
|
spotforecast2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
37
|
spotforecast2/utils/__init__.py,sha256=NrMt_xJLe4rbTFbsbgSQYeREohEOiYG5S-97e6Jj07I,1018
|
|
38
38
|
spotforecast2/utils/convert_to_utc.py,sha256=hz8mJUHK9jDLUiN5LdNX5l3KZuOKlklyycB4zFdB9Ng,1405
|
|
@@ -42,6 +42,6 @@ spotforecast2/utils/generate_holiday.py,sha256=SHaPvPMt-abis95cChHf5ObyPwCTrzJ87
|
|
|
42
42
|
spotforecast2/utils/validation.py,sha256=x9ypQzcneDhWJA_piiY4Q3_ogoGd1LTsZ7__MFeG9Fc,21618
|
|
43
43
|
spotforecast2/weather/__init__.py,sha256=1Jco88pl0deNESgNATin83Nf5i9c58pxN7G-vNiOiu0,120
|
|
44
44
|
spotforecast2/weather/weather_client.py,sha256=Ec_ywug6uoa71MfXM8RNbXEvtBtBzr-SUS5xq_HKtZE,9837
|
|
45
|
-
spotforecast2-0.2.
|
|
46
|
-
spotforecast2-0.2.
|
|
47
|
-
spotforecast2-0.2.
|
|
45
|
+
spotforecast2-0.2.2.dist-info/WHEEL,sha256=5DEXXimM34_d4Gx1AuF9ysMr1_maoEtGKjaILM3s4w4,80
|
|
46
|
+
spotforecast2-0.2.2.dist-info/METADATA,sha256=f5BfMpKyfzwbTOTguKeNPgjbuEu2N0zwMrfcjG82XYo,3481
|
|
47
|
+
spotforecast2-0.2.2.dist-info/RECORD,,
|
|
File without changes
|