feat: Enhance CSV cleaning service with new endpoints for CSV analysis and preview functionality. Introduce support for job management linked to extraction batches, and update the cleaning rules structure. Add new utility functions for handling CSV data and improve documentation for clarity on usage and available endpoints.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
"""Reglas de limpieza de texto / espacios."""
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
|
||||
import pandas as pd
|
||||
|
||||
|
||||
def _rule_strip_special_spaces(series: pd.Series) -> pd.Series:
|
||||
"""Elimina todo lo que no sea alfanumérico (incluye espacios)."""
|
||||
pattern = re.compile(r"[^A-Za-z0-9]", flags=re.UNICODE)
|
||||
|
||||
def _fn(x):
|
||||
if pd.isna(x):
|
||||
return x
|
||||
return pattern.sub("", str(x))
|
||||
|
||||
return series.map(_fn)
|
||||
|
||||
|
||||
def _rule_strip_special_keep_date_seps(series: pd.Series) -> pd.Series:
|
||||
"""Conserva alfanuméricos, separadores de fecha '/', '-' y hora ':', y espacio."""
|
||||
pattern = re.compile(r"[^A-Za-z0-9\/\-: ]", flags=re.UNICODE)
|
||||
|
||||
def _fn(x):
|
||||
if pd.isna(x):
|
||||
return x
|
||||
return pattern.sub("", str(x))
|
||||
|
||||
return series.map(_fn)
|
||||
|
||||
|
||||
def _rule_strip_spaces(series: pd.Series) -> pd.Series:
|
||||
"""Elimina únicamente espacios (incluidos tabs y saltos de línea)."""
|
||||
def _fn(x):
|
||||
if pd.isna(x):
|
||||
return x
|
||||
return re.sub(r"\s+", "", str(x))
|
||||
|
||||
return series.map(_fn)
|
||||
Reference in New Issue
Block a user