Skip to content

[Python] pa.scalar(pd.Timedelta) with second or millisecond unit performs invalid conversion  #37291

@mroeschke

Description

@mroeschke

Describe the bug, including details regarding any error messages, version, and platform.

In [1]: import pandas as pd; import pyarrow as pa

In [9]: pa.scalar(pd.Timedelta(days=1).as_unit("s"))
Out[9]: <pyarrow.DurationScalar: datetime.timedelta(0)>

In [10]: pa.scalar(pd.Timedelta(days=1).as_unit("ms"))
Out[10]: <pyarrow.DurationScalar: datetime.timedelta(0)>

In [11]: pa.scalar(pd.Timedelta(days=1).as_unit("us"))
Out[11]: <pyarrow.DurationScalar: datetime.timedelta(days=1)>

In [12]: pa.scalar(pd.Timedelta(days=1).as_unit("ns"))
Out[12]: <pyarrow.DurationScalar: datetime.timedelta(days=1)>

In [13]: pa.__version__
Out[13]: '12.0.0'  # same result with 13.0.0.dev715

I would expect all 4 results to return datetime.timedelta(days=1)

Component(s)

Python

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions