Referencia de la API¶
data_cleaner.data_cleaner module¶
Cleaner de CSVs a partir de reglas de limpieza.
La clase DataCleaner permite limpiar archivos CSVs con datos a partir de la aplicación de reglas de limpieza.
-
class
data_cleaner.data_cleaner.
DataCleaner
(input_path, encoding=None, sep=None, ignore_dups=False, quotechar=None, dtype=None)[source]¶ Bases:
object
Crea un objeto DataCleaner cargando un CSV en un DataFrame y expone reglas de limpieza para operar sobre las columnas del objeto y retornar un CSV limplio.
-
DEFAULT_SUFIX
= u'normalizado'¶
-
INPUT_DEFAULT_ENCODING
= 'utf-8'¶
-
INPUT_DEFAULT_QUOTECHAR
= '"'¶
-
INPUT_DEFAULT_SEPARATOR
= ','¶
-
OUTPUT_ENCODING
= 'utf-8'¶
-
OUTPUT_QUOTECHAR
= '"'¶
-
OUTPUT_SEPARATOR
= ','¶
-
clean
(rules)[source]¶ Aplica las reglas de limpieza al objeto en memoria.
Parameters: rules (list) – Lista de reglas de limpieza.
-
clean_file
(rules, output_path)[source]¶ Aplica las reglas de limpieza y guarda los datos en un csv.
Parameters: rules (list) – Lista de reglas de limpieza.
-
fecha_completa
(field, time_format, keep_original=False, inplace=False)[source]¶ Regla para fechas completas que están en un sólo campo.
Parameters: Returns: Serie de strings limpios
Return type: pandas.Series
-
fecha_separada
(fields, new_field_name, keep_original=True, inplace=False)[source]¶ Regla para fechas completas que están separadas en varios campos.
Parameters: Returns: Serie de strings limpios.
Return type: pandas.Series
-
fecha_simple
(field, time_format, keep_original=False, inplace=False)[source]¶ Regla para fechas sin hora, sin día o sin mes.
Parameters: Returns: Serie de strings limpios
Return type: pandas.Series
-
mail_format
(field, sufix=None, keep_original=False, inplace=False)[source]¶ Regla para dar formato a las direcciones de correo electronico.
Lleva todas las cadenas a minusculas y luego si hay varias las separa por comas.
Parameters: field (str) – Campo a limpiar Returns: Serie de strings limpios Return type: pandas.Series
-
nombre_propio
(field, sufix=None, lower_words=None, keep_original=False, inplace=False)[source]¶ Regla para todos los nombres propios.
Capitaliza los nombres de países, ciudades, personas, instituciones y similares.
Parameters: field (str) – Campo a limpiar Returns: Serie de strings limpios Return type: pandas.Series
-
reemplazar
(field, replacements, sufix=None, keep_original=False, inplace=False)[source]¶ Reemplaza listas de valores por un nuevo valor.
Parameters: Returns: Serie de strings limpios
Return type: pandas.Series
-
reemplazar_string
(field, replacements, sufix=None, keep_original=False, inplace=False)[source]¶ - Reemplaza listas de strings por un nuevo string.
- A diferencias de la funcion reemplazar hace reemplazos parciales.
Parameters: Returns: Serie de strings limpios
Return type: pandas.Series
-
remover_columnas
(field, inplace=False)[source]¶ Remueve columnas.
Parameters: field (str) – Campo a limpiar Returns: Data frame con las columnas removidas. Return type: pandas.DataFrame
-
renombrar_columnas
(field, new_field, inplace=False)[source]¶ Renombra una columna.
Parameters: - field (str) – Campo a renombrar.
- field – Nuevo nombre
Returns: Data frame con las columnas renombradas.
Return type: pandas.DataFrame
-
save
(output_path)[source]¶ Guarda los datos en un nuevo CSV con formato estándar.
El CSV se guarda codificado en UTF-8, separado con ”,” y usando ‘”’ comillas dobles como caracter de enclosing.
-
string
(field, sufix=None, sort_tokens=False, remove_duplicates=False, keep_original=False, inplace=False)[source]¶ Regla para todos los strings.
Aplica un algoritimo de clustering para normalizar strings que son demasiado parecidos, sin pérdida de información.
Parameters: field (str) – Campo a limpiar. Returns: Serie de strings limpios. Return type: pandas.Series
-
string_peg_split
(field, grammar, new_field_names, keep_original=True, inplace=False)[source]¶ Regla para separar un campo a partir parsing expression grammars.
Parameters: Returns: Serie de strings limpios
Return type: pandas.Series
-
string_regex_split
(field, pattern, new_field_names, keep_original=True, inplace=False)[source]¶ Regla para separar un campo a partir de una expresión regular.
TODO!!! Falta implementar este método.
Parameters: Returns: Serie de strings limpios
Return type: pandas.Series
-
string_regex_substitute
(field, regex_str_match, regex_str_sub, sufix=None, keep_original=True, inplace=False)[source]¶ Regla para manipular y reeemplazar datos de un campo con regex.
Parameters: Returns: Serie de strings limpios
Return type: pandas.Series
-
-
exception
data_cleaner.data_cleaner.
DuplicatedField
(value)[source]¶ Bases:
exceptions.ValueError
Salta cuando hay un campo duplicado en el dataset.
data_cleaner.capitalizer module¶
Nomalizacion de strings.
data_cleaner.fingerprint_keyer module¶
Implementa funciones para clusterizar strings.
Utiliza el algoritmo Key Collision: Fingerprint.
-
data_cleaner.fingerprint_keyer.
fingerprint_keyer
(key_string, sort_tokens=False, remove_duplicates=False)[source]¶ Convierte un string en su fingerprint key representation.
Parameters: key_string (str) – String para convertir en fingerprint key. Returns: Fingerprint correspondiente al input. Return type: str
-
data_cleaner.fingerprint_keyer.
get_best_replacements
(clusters, counts)[source]¶ Selecciona los strings más utilizados por cluster.
Itera por cada cluster para determinar la mejor string para reemplazar las strings originales. De momento solo utiliza un conteo simple pero podria agregarse algun criterio basado en la capitalizacion de las palabras
Parameters: Returns: {fingerprint: string_mas_usada_para_esa_fingerprint}
Return type:
-
data_cleaner.fingerprint_keyer.
group_fingerprint_strings
(raw_strs, sort_tokens=False, remove_duplicates=False)[source]¶ Clusteriza un conjunto de strings, según sus fingerprints.
Parameters: raw_strs (list) – Lista de strings sin procesar. Returns: En el primer dict las keys son los fingerprints y los valores las strings originales. En el segundo las keys son las strings sin normalizar y los valores el conteo de la cantidad de veces que aparecen. Return type: (dict, dict)