resample() silently ignores misstyped str kwargs, e.g. for label · Issue #19303 · pandas-dev/pandas (original) (raw)
Code Sample, a copy-pastable example if possible
In [1]: import pandas as pd
In [2]: df = pd.DataFrame(index=pd.date_range(start='2010-01-23', periods=1000, freq='min'), data={'foo': pd.np.random.rand(1000)})
In [3]: df.resample('h').mean().tail() Out[3]: foo 2010-01-23 12:00:00 0.477997 2010-01-23 13:00:00 0.488294 2010-01-23 14:00:00 0.426095 2010-01-23 15:00:00 0.549081 2010-01-23 16:00:00 0.466148
In [4]: df.resample('h', label='right').mean().tail() Out[4]: foo 2010-01-23 13:00:00 0.477997 2010-01-23 14:00:00 0.488294 2010-01-23 15:00:00 0.426095 2010-01-23 16:00:00 0.549081 2010-01-23 17:00:00 0.466148
In [5]:
In [5]: df.resample('h', label='right_wrong').mean().tail() Out[5]: foo 2010-01-23 12:00:00 0.477997 2010-01-23 13:00:00 0.488294 2010-01-23 14:00:00 0.426095 2010-01-23 15:00:00 0.549081 2010-01-23 16:00:00 0.466148
The last command should fail!
Problem description
Recently (and maybe many times before without noticing...) I mistyped the string passed as kwarg label
in resample
, e.g. df.resample('5min', label='rigth')
and wondered later why the alignment of my resampled data with the raw data was wrong. It turns out that the actual string passed as kwarg label
is never checked to be either left
or right
. Hence, if it is
Is this on purpose, or should this be fixed?
If yes, a check could be inserted here. Or maybe deeper in the class hierarchy? Maybe other kwargs, like closed
could also be affected.
If I get a pointer I could come up with a PR.
Output of pd.show_versions()
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.14.final.0
python-bits: 64
OS: Darwin
OS-release: 16.7.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: None
LANG: de_DE.UTF-8
LOCALE: None.None
pandas: 0.21.0
pytest: 3.2.5
pip: 9.0.1
setuptools: 36.7.2
Cython: None
numpy: 1.13.3
scipy: 1.0.0
pyarrow: 0.7.1
xarray: 0.10.0
IPython: 5.5.0
sphinx: None
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.3
blosc: None
bottleneck: 1.2.1
tables: None
numexpr: None
feather: 0.4.0
matplotlib: 2.1.0
openpyxl: None
xlrd: 1.1.0
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: 0.999999999
sqlalchemy: None
pymysql: None
psycopg2: 2.7.3.2 (dt dec pq3 ext lo64)
jinja2: 2.9.6
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None