You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
¿Cuál es el comportamiento que esperabas y cuál fue el comportamiento recibido?
El comportamiento que esperaba es que el datacleaner solo dispare warnings de nombres de columnas cuando corresponde, lo cual no parece estar sucediendo por dos temas independientes.
Por un lado, se disparan warnings para todos los nombres de columnas que se encuentren en el input al momento de crear la instancia del data cleaner. Por otro lado, se disparan de vuelta warnings al momento de aplicar las reglas. Esto molesta en dos sentidos: primero porque hay warnings duplciados, y segundo porque hay columnas que ya se que hay que renombrar y su nuevo nombre se encuentra dentro de las reglas que le paso al datacleaner, con lo cual esperaria que en este caso no dispare warnings.
Ver el ejemplo a continuación. Al ejecutar el ejemplo esperaria que solo se genere un warning por la columna llamda TIRAME WARNINGS, pero obtengo dos warnings para NO ME TIRES WARNINGS y uno para TIRAME WARNINGS.
¿Cuáles son los pasos para reproducir el bug?
# Setup del environment
$ mkdir test
$ cdtest
$ virtualenv venv
$ . venv/bin/activate
$ pip install data_cleaner
Una vez que está setupeado el environment, crear los siguientes archivos
example_input.csv
NO ME TIRES WARNINGS,TIRAME WARNINGS
1,2
script.py
fromdata_cleanerimportDataCleanerinput_path="example_input.csv"output_path="example_output.csv"rules= [
{
"renombrar_columnas": [
{"field": "NO ME TIRES WARNINGS", "new_field": "ya_se_que_tengo_que_renombrar_esta_columna"},
]
}
]
DataCleaner(input_path).clean_file(rules, output_path)
Al ejecutar el script via python script.py se obtienen los siguientes warnings:
/Users/iheredia/personal/test/venv/lib/python2.7/site-packages/data_cleaner/data_cleaner.py:196: UserWarning:
El campo "NO ME TIRES WARNINGS" no sigue las convenciones para escribir
campos (sólo se admiten caracteres alfanuméricos ASCII en
minúsculas, con palabras separadas por "_"). DataCleaner
normaliza automáticamente los campos en estos casos, lo
que puede llevar a resultados inesperados.
El nuevo nombre del campo normalizado es: "no_me_tires_warnings".
Método que llamó al normalizador de campos: __init__
warnings.warn(msg)
/Users/iheredia/personal/test/venv/lib/python2.7/site-packages/data_cleaner/data_cleaner.py:196: UserWarning:
El campo "TIRAME WARNINGS" no sigue las convenciones para escribir
campos (sólo se admiten caracteres alfanuméricos ASCII en
minúsculas, con palabras separadas por "_"). DataCleaner
normaliza automáticamente los campos en estos casos, lo
que puede llevar a resultados inesperados.
El nuevo nombre del campo normalizado es: "tirame_warnings".
Método que llamó al normalizador de campos: __init__
warnings.warn(msg)
/Users/iheredia/personal/test/venv/lib/python2.7/site-packages/unidecode/__init__.py:46: RuntimeWarning: Argument <type 'str'> is not an unicode object. Passing an encoded string will likely have unexpected results.
_warn_if_not_unicode(string)
/Users/iheredia/personal/test/venv/lib/python2.7/site-packages/data_cleaner/data_cleaner.py:196: UserWarning:
El campo "NO ME TIRES WARNINGS" no sigue las convenciones para escribir
campos (sólo se admiten caracteres alfanuméricos ASCII en
minúsculas, con palabras separadas por "_"). DataCleaner
normaliza automáticamente los campos en estos casos, lo
que puede llevar a resultados inesperados.
El nuevo nombre del campo normalizado es: "no_me_tires_warnings".
Método que llamó al normalizador de campos: renombrar_columnas
warnings.warn(msg)
Detalles del contexto: ¿qué sistema operativo, qué versión de navegador estás usando, por ejemplo?
$ uname -a # version del sistema operativo (mac os)
Darwin ARAR013089 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
$ python --version
Python 2.7.15
$ pip --version
pip 18.1 from /Users/iheredia/personal/test/venv/lib/python2.7/site-packages/pip (python 2.7)
$ pip freeze
arrow==0.13.0
attrs==18.2.0
backports.functools-lru-cache==1.5
certifi==2018.11.29
chardet==3.0.4
Click==7.0
click-plugins==1.0.4
cligj==0.5.0
coverage==4.5.2
cycler==0.10.0
data-cleaner==0.1.20
descartes==1.1.0
enum34==1.1.6
Fiona==1.8.4
funcsigs==1.0.2
geopandas==0.2.1
idna==2.8
kiwisolver==1.0.1
matplotlib==2.2.3
mock==2.0.0
munch==2.3.2
nose==1.3.7
numpy==1.16.0
pandas==0.23.4
Parsley==1.3
pbr==5.1.1
PyCRS==0.1.3
pyparsing==2.3.1
pyproj==1.9.6
python-dateutil==2.7.5
pytz==2018.9
requests==2.21.0
Shapely==1.6.4.post2
six==1.12.0
subprocess32==3.5.3
unicodecsv==0.14.1
Unidecode==1.0.23
urllib3==1.24.1
xlrd==1.2.0
The text was updated successfully, but these errors were encountered:
¿Cuál es el comportamiento que esperabas y cuál fue el comportamiento recibido?
El comportamiento que esperaba es que el datacleaner solo dispare warnings de nombres de columnas cuando corresponde, lo cual no parece estar sucediendo por dos temas independientes.
Por un lado, se disparan warnings para todos los nombres de columnas que se encuentren en el input al momento de crear la instancia del data cleaner. Por otro lado, se disparan de vuelta warnings al momento de aplicar las reglas. Esto molesta en dos sentidos: primero porque hay warnings duplciados, y segundo porque hay columnas que ya se que hay que renombrar y su nuevo nombre se encuentra dentro de las reglas que le paso al datacleaner, con lo cual esperaria que en este caso no dispare warnings.
Ver el ejemplo a continuación. Al ejecutar el ejemplo esperaria que solo se genere un warning por la columna llamda
TIRAME WARNINGS
, pero obtengo dos warnings paraNO ME TIRES WARNINGS
y uno paraTIRAME WARNINGS
.¿Cuáles son los pasos para reproducir el bug?
Una vez que está setupeado el environment, crear los siguientes archivos
example_input.csv
script.py
Al ejecutar el script via
python script.py
se obtienen los siguientes warnings:Detalles del contexto: ¿qué sistema operativo, qué versión de navegador estás usando, por ejemplo?
The text was updated successfully, but these errors were encountered: