Skip to content

ENH: enable pd.cut to handle i8 convertibles #14714

@jreback

Description

@jreback

so this should work for timedeltas AND datetimes.

Should be straight forward. detect an i8 convertible. turn into i8. do the cut. turn back to the original dtype.

In [15]: s = Series(pd.to_timedelta(np.random.randint(0,100,size=10),unit='ms')).sort_values() In [16]: s Out[16]: 3 00:00:00.005000 5 00:00:00.007000 7 00:00:00.010000 4 00:00:00.017000 9 00:00:00.023000 1 00:00:00.043000 0 00:00:00.045000 6 00:00:00.047000 8 00:00:00.065000 2 00:00:00.090000 dtype: timedelta64[ns] In [18]: pd.cut(s, 5) TypeError: unsupported operand type(s) for +: 'Timedelta' and 'float' # works when converted In [17]: pd.cut(s.astype('timedelta64[ms]'), 5) Out[17]: 3 (4.915, 22] 5 (4.915, 22] 7 (4.915, 22] 4 (4.915, 22] 9 (22, 39] 1 (39, 56] 0 (39, 56] 6 (39, 56] 8 (56, 73] 2 (73, 90] dtype: category Categories (5, object): [(4.915, 22] < (22, 39] < (39, 56] < (56, 73] < (73, 90]] 

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