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
For some timestamps more than a hundred years or so in the past or future, Timestamp.floor() rounds an already-round timestamp down to the next round value. I came up against the problem because I was assuming that Timestamp.floor() is idempotent.
I've looked at #14572 and #14440, these have both been closed as fixed but this bug is still present.
Definitely a round-off issue with large numbers. Some curious behavior of true division in Python 3. I would have thought that int / float(int) would be equivalent to int / int. It is when numbers are not large, but in this case:
>>> value = pd.Timestamp('1823-01-01 00:00:01').value
>>> value
-4638902399000000000
>>> unit = to_offset('1s')
>>> unit
1000000000
>>> value / unit
-4638902399.0
>>> value / float(unit)
-4638902399.000001
Changing the division in the offset calculation from int / float(int) to int / int solves the problem, but raises issues for Python 2, which __future__ division did appear to fix, even though it works in the terminal.
Code Sample, a copy-pastable example if possible
Problem description
For some timestamps more than a hundred years or so in the past or future,
Timestamp.floor()
rounds an already-round timestamp down to the next round value. I came up against the problem because I was assuming thatTimestamp.floor()
is idempotent.I've looked at #14572 and #14440, these have both been closed as fixed but this bug is still present.
Expected Output
Output of
pd.show_versions()
pandas: 0.22.0
pytest: 3.3.0
pip: 9.0.1
setuptools: 36.5.0.post20170921
Cython: 0.27.3
numpy: 1.13.3
scipy: 1.0.0
pyarrow: None
xarray: 0.10.0
IPython: 6.2.1
sphinx: 1.6.3
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.3
blosc: None
bottleneck: 1.2.1
tables: 3.4.2
numexpr: 2.6.2
feather: None
matplotlib: 2.1.0
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.1
bs4: 4.6.0
html5lib: 0.999999999
sqlalchemy: 1.1.13
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
The text was updated successfully, but these errors were encountered: