From 0ebd0d85483004026af31c77ba2953bcb7a6ad4e Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sun, 26 Mar 2017 13:38:27 -0400 Subject: [PATCH 1/2] BUG: incorrect conversion on isin algos with m8 --- pandas/core/algorithms.py | 5 ++++- pandas/tests/test_algos.py | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pandas/core/algorithms.py b/pandas/core/algorithms.py index 3b77bda6f69f0..a62d290277443 100644 --- a/pandas/core/algorithms.py +++ b/pandas/core/algorithms.py @@ -174,7 +174,7 @@ def isin(comps, values): " to isin(), you passed a " "[{0}]".format(type(values).__name__)) - from pandas import DatetimeIndex, PeriodIndex + from pandas import DatetimeIndex, TimedeltaIndex, PeriodIndex if not isinstance(values, (ABCIndex, ABCSeries, np.ndarray)): values = np.array(list(values), dtype='object') @@ -183,6 +183,9 @@ def isin(comps, values): if is_period_dtype(values): comps = PeriodIndex(comps) values = PeriodIndex(values) + elif is_timedelta64_dtype(comps): + comps = TimedeltaIndex(comps) + values = TimedeltaIndex(values) else: comps = DatetimeIndex(comps) values = DatetimeIndex(values) diff --git a/pandas/tests/test_algos.py b/pandas/tests/test_algos.py index f8eac7a8911ad..5d69746034346 100644 --- a/pandas/tests/test_algos.py +++ b/pandas/tests/test_algos.py @@ -431,6 +431,8 @@ def test_basic(self): expected = np.array([False, False]) tm.assert_numpy_array_equal(result, expected) + def test_i8(self): + arr = pd.date_range('20130101', periods=3).values result = algos.isin(arr, [arr[0]]) expected = np.array([True, False, False]) From 78527c6b399312a3ded2856376a3af3187da4239 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sun, 26 Mar 2017 13:46:04 -0400 Subject: [PATCH 2/2] TST: suppress some warnings --- pandas/tests/test_categorical.py | 6 ++++-- pandas/tests/test_nanops.py | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/pandas/tests/test_categorical.py b/pandas/tests/test_categorical.py index 6c8aeba704c7b..479f0e4566b8d 100644 --- a/pandas/tests/test_categorical.py +++ b/pandas/tests/test_categorical.py @@ -2913,10 +2913,12 @@ def test_info(self): df['category'] = Series(np.array(list('abcdefghij')).take( np.random.randint(0, 10, size=n))).astype('category') df.isnull() - df.info() + buf = compat.StringIO() + df.info(buf=buf) df2 = df[df['category'] == 'd'] - df2.info() + buf = compat.StringIO() + df2.info(buf=buf) def test_groupby_sort(self): diff --git a/pandas/tests/test_nanops.py b/pandas/tests/test_nanops.py index 75a7555d58ca5..54de8c1e34031 100644 --- a/pandas/tests/test_nanops.py +++ b/pandas/tests/test_nanops.py @@ -389,9 +389,10 @@ def test_nanstd(self): def test_nansem(self): tm.skip_if_no_package('scipy', min_version='0.17.0') from scipy.stats import sem - self.check_funs_ddof(nanops.nansem, sem, allow_complex=False, - allow_str=False, allow_date=False, - allow_tdelta=True, allow_obj='convert') + with np.errstate(invalid='ignore'): + self.check_funs_ddof(nanops.nansem, sem, allow_complex=False, + allow_str=False, allow_date=False, + allow_tdelta=False, allow_obj='convert') def _minmax_wrap(self, value, axis=None, func=None): res = func(value, axis) @@ -449,16 +450,20 @@ def test_nanskew(self): tm.skip_if_no_package('scipy', min_version='0.17.0') from scipy.stats import skew func = partial(self._skew_kurt_wrap, func=skew) - self.check_funs(nanops.nanskew, func, allow_complex=False, - allow_str=False, allow_date=False, allow_tdelta=False) + with np.errstate(invalid='ignore'): + self.check_funs(nanops.nanskew, func, allow_complex=False, + allow_str=False, allow_date=False, + allow_tdelta=False) def test_nankurt(self): tm.skip_if_no_package('scipy', min_version='0.17.0') from scipy.stats import kurtosis func1 = partial(kurtosis, fisher=True) func = partial(self._skew_kurt_wrap, func=func1) - self.check_funs(nanops.nankurt, func, allow_complex=False, - allow_str=False, allow_date=False, allow_tdelta=False) + with np.errstate(invalid='ignore'): + self.check_funs(nanops.nankurt, func, allow_complex=False, + allow_str=False, allow_date=False, + allow_tdelta=False) def test_nanprod(self): self.check_funs(nanops.nanprod, np.prod, allow_str=False,