Skip to content

to_timedelta rounds to microseconds unless unit is us or ns #17221

Closed
@jdmarble

Description

@jdmarble

Code Sample

>>> pd.to_timedelta(0.123_456_789, unit='s').components
Components(days=0, hours=0, minutes=0, seconds=0, milliseconds=123, microseconds=457, nanoseconds=0)
>>> pd.to_timedelta(123.456_789, unit='ms').components
Components(days=0, hours=0, minutes=0, seconds=0, milliseconds=123, microseconds=457, nanoseconds=0)
>>> pd.to_timedelta(123_456.789, unit='us').components
Components(days=0, hours=0, minutes=0, seconds=0, milliseconds=123, microseconds=456, nanoseconds=789)
>>> pd.to_timedelta(123_456_789.0, unit='ns').components
Components(days=0, hours=0, minutes=0, seconds=0, milliseconds=123, microseconds=456, nanoseconds=789)

Problem description

I have an array of floats that represent the number of seconds since a reference time with (roughly) nanosecond precision. I want to convert to a timedelta series, but this rounds off the nanoseconds. I can work around the behavior with something like the following:

>>> pd.to_timedelta(array_seconds * 1_000_000, unit='us')

Expected Output

>>> pd.to_timedelta(0.123_456_789, unit='s').components
Components(days=0, hours=0, minutes=0, seconds=0, milliseconds=123, microseconds=456, nanoseconds=789)
>>> pd.to_timedelta(123.456_789, unit='ms').components
Components(days=0, hours=0, minutes=0, seconds=0, milliseconds=123, microseconds=456, nanoseconds=789)

Output of pd.show_versions()

pd.show_versions()
INSTALLED VERSIONS

commit: None
python: 3.6.1.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None
pandas: 0.20.1
pytest: 3.0.7
pip: 9.0.1
setuptools: 27.2.0
Cython: 0.25.2
numpy: 1.12.1
scipy: 0.19.0
xarray: 0.9.6
IPython: 5.3.0
sphinx: 1.5.6
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.2.2
numexpr: 2.6.2
feather: None
matplotlib: 2.0.2
openpyxl: 2.4.7
xlrd: 1.0.0
xlwt: 1.2.0
xlsxwriter: 0.9.6
lxml: 3.7.3
bs4: 4.6.0
html5lib: 0.999
sqlalchemy: 1.1.9
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
pandas_gbq: None
pandas_datareader: None

Metadata

Metadata

Assignees

No one assigned

    Labels

    Duplicate ReportDuplicate issue or pull requestTimedeltaTimedelta data type

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions