-
-
Notifications
You must be signed in to change notification settings - Fork 18.7k
Closed
Labels
DatetimeDatetime data dtypeDatetime data dtypeEnhancementGroupbyTimedeltaTimedelta data typeTimedelta data type
Description
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
Labels
DatetimeDatetime data dtypeDatetime data dtypeEnhancementGroupbyTimedeltaTimedelta data typeTimedelta data type