|
4 | 4 | from pandas import compat |
5 | 5 | import numpy as np |
6 | 6 | from pandas.core import common as com |
| 7 | +import pandas.core.nanops as nanops |
| 8 | +import pandas.tslib as tslib |
| 9 | + |
7 | 10 |
|
8 | 11 | class StringMixin(object): |
9 | 12 |
|
@@ -236,13 +239,11 @@ def _wrap_access_object(self, obj): |
236 | 239 |
|
237 | 240 | def max(self): |
238 | 241 | """ The maximum value of the object """ |
239 | | - import pandas.core.nanops |
240 | | - return pandas.core.nanops.nanmax(self.values) |
| 242 | + return nanops.nanmax(self.values) |
241 | 243 |
|
242 | 244 | def min(self): |
243 | 245 | """ The minimum value of the object """ |
244 | | - import pandas.core.nanops |
245 | | - return pandas.core.nanops.nanmin(self.values) |
| 246 | + return nanops.nanmin(self.values) |
246 | 247 |
|
247 | 248 | def value_counts(self, normalize=False, sort=True, ascending=False, |
248 | 249 | bins=None, dropna=True): |
@@ -406,31 +407,29 @@ def min(self, axis=None): |
406 | 407 | """ |
407 | 408 | Overridden ndarray.min to return an object |
408 | 409 | """ |
409 | | - import pandas.tslib as tslib |
410 | | - mask = self.asi8 == tslib.iNaT |
411 | | - masked = self[~mask] |
412 | | - if len(masked) == 0: |
413 | | - return self._na_value |
414 | | - elif self.is_monotonic: |
415 | | - return masked[0] |
416 | | - else: |
417 | | - min_stamp = masked.asi8.min() |
| 410 | + try: |
| 411 | + mask = self.asi8 == tslib.iNaT |
| 412 | + if mask.any(): |
| 413 | + min_stamp = self[~mask].asi8.min() |
| 414 | + else: |
| 415 | + min_stamp = self.asi8.min() |
418 | 416 | return self._box_func(min_stamp) |
| 417 | + except ValueError: |
| 418 | + return self._na_value |
419 | 419 |
|
420 | 420 | def max(self, axis=None): |
421 | 421 | """ |
422 | 422 | Overridden ndarray.max to return an object |
423 | 423 | """ |
424 | | - import pandas.tslib as tslib |
425 | | - mask = self.asi8 == tslib.iNaT |
426 | | - masked = self[~mask] |
427 | | - if len(masked) == 0: |
428 | | - return self._na_value |
429 | | - elif self.is_monotonic: |
430 | | - return masked[-1] |
431 | | - else: |
432 | | - max_stamp = masked.asi8.max() |
| 424 | + try: |
| 425 | + mask = self.asi8 == tslib.iNaT |
| 426 | + if mask.any(): |
| 427 | + max_stamp = self[~mask].asi8.max() |
| 428 | + else: |
| 429 | + max_stamp = self.asi8.max() |
433 | 430 | return self._box_func(max_stamp) |
| 431 | + except ValueError: |
| 432 | + return self._na_value |
434 | 433 |
|
435 | 434 | @property |
436 | 435 | def _formatter_func(self): |
|
0 commit comments