ENH: support min/max on timedelta64[ns] Series by jreback · Pull Request #2990 · pandas-dev/pandas (original) (raw)

In [168]: df = DataFrame(dict(A = s - Timestamp('20120101')-timedelta(minutes=5,seconds=5),
   .....:                     B = s - Series(date_range('2012-1-2', periods=3, freq='D'))))
   .....:

In [169]: df
Out[169]: 
                 A                 B
0        -00:05:05 -1 days, 00:00:00
1         23:54:55 -1 days, 00:00:00
2 1 days, 23:54:55 -1 days, 00:00:00

In [170]: df.min()
Out[170]: 
A           -00:05:05
B   -1 days, 00:00:00
dtype: timedelta64[ns]

In [171]: df.min(axis=1)
Out[171]: 
0   -1 days, 00:00:00
1   -1 days, 00:00:00
2   -1 days, 00:00:00
dtype: timedelta64[ns]

In [172]: df.idxmin()
Out[172]: 
A    0
B    0
dtype: int64

In [173]: df.idxmax()
Out[173]: 
A    2
B    0
dtype: int64

min, max operations are support on series, these return a single element timedelta64[ns] Series 
(this avoids having to deal with numpy timedelta64 issues). idxmin, idxmax are supported as well.

In [306]: df.min().max()
Out[306]: 
0   -00:05:05
dtype: timedelta64[ns]

In [307]: df.min(axis=1).min()
Out[307]: 
0   -1 days, 00:00:00
dtype: timedelta64[ns]

In [308]: df.min().idxmax()
Out[308]: 'A'

In [309]: df.min(axis=1).idxmin()
Out[309]: 0