@@ -121,7 +121,8 @@ def _nanvar(values, axis=None, skipna=True, ddof=1):
121
121
122
122
def _nanmin (values , axis = None , skipna = True ):
123
123
mask = isnull (values )
124
- if skipna and not issubclass (values .dtype .type , np .integer ):
124
+ if skipna and not issubclass (values .dtype .type ,
125
+ (np .integer , np .datetime64 )):
125
126
values = values .copy ()
126
127
np .putmask (values , mask , np .inf )
127
128
# numpy 1.6.1 workaround in Python 3.x
@@ -140,7 +141,8 @@ def _nanmin(values, axis=None, skipna=True):
140
141
141
142
def _nanmax (values , axis = None , skipna = True ):
142
143
mask = isnull (values )
143
- if skipna and not issubclass (values .dtype .type , np .integer ):
144
+ if skipna and not issubclass (values .dtype .type ,
145
+ (np .integer , np .datetime64 )):
144
146
values = values .copy ()
145
147
np .putmask (values , mask , - np .inf )
146
148
# numpy 1.6.1 workaround in Python 3.x
@@ -400,13 +402,15 @@ def unique1d(values):
400
402
table = lib .Float64HashTable (len (values ))
401
403
uniques = np .array (table .unique (com ._ensure_float64 (values )),
402
404
dtype = np .float64 )
405
+ elif np .issubdtype (values .dtype , np .datetime64 ):
406
+ table = lib .Int64HashTable (len (values ))
407
+ uniques = np .array (table .unique (com ._ensure_int64 (values )),
408
+ dtype = np .int64 )
409
+ uniques = uniques .view ('M8[ns]' )
403
410
elif np .issubdtype (values .dtype , np .integer ):
404
411
table = lib .Int64HashTable (len (values ))
405
412
uniques = np .array (table .unique (com ._ensure_int64 (values )),
406
413
dtype = np .int64 )
407
-
408
- if np .issubdtype (values .dtype , np .datetime64 ):
409
- uniques = uniques .view ('M8[ns]' )
410
414
else :
411
415
table = lib .PyObjectHashTable (len (values ))
412
416
uniques = table .unique (com ._ensure_object (values ))
0 commit comments