MCPcopy Create free account
hub / github.com/feast-dev/feast / normalize_timestamp_columns

Function normalize_timestamp_columns

sdk/python/feast/infra/ray_shared_utils.py:213–249  ·  view source on GitHub ↗
(
    data: Union[pd.DataFrame, Dataset, Any],
    columns: Union[str, List[str]],
    inplace: bool = False,
    exclude_columns: Optional[List[str]] = None,
)

Source from the content-addressed store, hash-verified

211
212
213def normalize_timestamp_columns(
214 data: Union[pd.DataFrame, Dataset, Any],
215 columns: Union[str, List[str]],
216 inplace: bool = False,
217 exclude_columns: Optional[List[str]] = None,
218) -> Union[pd.DataFrame, Dataset, Any]:
219 column_list = [columns] if isinstance(columns, str) else columns
220 exclude_columns = exclude_columns or []
221
222 def apply_normalization(series: pd.Series) -> pd.Series:
223 return (
224 pd.to_datetime(series, utc=True, errors="coerce")
225 .dt.floor("s")
226 .astype("datetime64[ns, UTC]")
227 )
228
229 if is_ray_data(data):
230
231 def normalize_batch(batch: pd.DataFrame) -> pd.DataFrame:
232 for column in column_list:
233 if (
234 not batch.empty
235 and column in batch.columns
236 and column not in exclude_columns
237 ):
238 batch[column] = apply_normalization(batch[column])
239 return batch
240
241 return data.map_batches(normalize_batch, batch_format="pandas")
242 else:
243 assert isinstance(data, pd.DataFrame)
244 if not inplace:
245 data = data.copy()
246 for column in column_list:
247 if column in data.columns and column not in exclude_columns:
248 data[column] = apply_normalization(data[column])
249 return data
250
251
252def ensure_timestamp_compatibility(

Calls 3

is_ray_dataFunction · 0.85
apply_normalizationFunction · 0.85
map_batchesMethod · 0.80

Tested by

no test coverage detected