Skip to content

Commit bf1f662

Browse files
committed
BUG: New fixes after master rebase.
1 parent e7adc03 commit bf1f662

File tree

5 files changed

+85
-73
lines changed

5 files changed

+85
-73
lines changed

pandas/formats/format.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -2094,12 +2094,11 @@ def format_values_with(float_format):
20942094
else:
20952095
too_long = False
20962096

2097-
abs_vals = np.abs(self.values)
2098-
2099-
# this is pretty arbitrary for now
2100-
# large values: more that 8 characters including decimal symbol
2101-
# and first digit, hence > 1e6
21022097
with np.errstate(invalid='ignore'):
2098+
abs_vals = np.abs(self.values)
2099+
# this is pretty arbitrary for now
2100+
# large values: more that 8 characters including decimal symbol
2101+
# and first digit, hence > 1e6
21032102
has_large_values = (abs_vals > 1e6).any()
21042103
has_small_values = ((abs_vals < 10**(-self.digits)) &
21052104
(abs_vals > 0)).any()
@@ -2212,9 +2211,10 @@ def format_percentiles(percentiles):
22122211
percentiles = np.asarray(percentiles)
22132212

22142213
# It checks for np.NaN as well
2215-
if not is_numeric_dtype(percentiles) or not np.all(percentiles >= 0) \
2216-
or not np.all(percentiles <= 1):
2217-
raise ValueError("percentiles should all be in the interval [0,1]")
2214+
with np.errstate(invalid='ignore'):
2215+
if not is_numeric_dtype(percentiles) or not np.all(percentiles >= 0) \
2216+
or not np.all(percentiles <= 1):
2217+
raise ValueError("percentiles should all be in the interval [0,1]")
22182218

22192219
percentiles = 100 * percentiles
22202220
int_idx = (percentiles.astype(int) == percentiles)

pandas/sparse/array.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,8 @@ def __array_wrap__(self, out_arr, context=None):
293293
ufunc, args, domain = context
294294
# to apply ufunc only to fill_value (to avoid recursive call)
295295
args = [getattr(a, 'fill_value', a) for a in args]
296-
fill_value = ufunc(self.fill_value, *args[1:])
296+
with np.errstate(all='ignore'):
297+
fill_value = ufunc(self.fill_value, *args[1:])
297298
else:
298299
fill_value = self.fill_value
299300

pandas/sparse/series.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,8 @@ def __array_wrap__(self, result, context=None):
311311
if isinstance(context, tuple) and len(context) == 3:
312312
ufunc, args, domain = context
313313
args = [getattr(a, 'fill_value', a) for a in args]
314-
fill_value = ufunc(self.fill_value, *args[1:])
314+
with np.errstate(all='ignore'):
315+
fill_value = ufunc(self.fill_value, *args[1:])
315316
else:
316317
fill_value = self.fill_value
317318

pandas/sparse/tests/test_arithmetics.py

+70-62
Original file line numberDiff line numberDiff line change
@@ -14,99 +14,107 @@ def _assert(self, a, b):
1414
tm.assert_numpy_array_equal(a, b)
1515

1616
def _check_numeric_ops(self, a, b, a_dense, b_dense):
17-
# sparse & sparse
18-
self._assert((a + b).to_dense(), a_dense + b_dense)
19-
self._assert((b + a).to_dense(), b_dense + a_dense)
17+
with np.errstate(invalid='ignore', divide='ignore'):
18+
# Unfortunately, trying to wrap the computation of each expected
19+
# value is with np.errstate() is too tedious.
2020

21-
self._assert((a - b).to_dense(), a_dense - b_dense)
22-
self._assert((b - a).to_dense(), b_dense - a_dense)
21+
# sparse & sparse
22+
self._assert((a + b).to_dense(), a_dense + b_dense)
23+
self._assert((b + a).to_dense(), b_dense + a_dense)
2324

24-
self._assert((a * b).to_dense(), a_dense * b_dense)
25-
self._assert((b * a).to_dense(), b_dense * a_dense)
25+
self._assert((a - b).to_dense(), a_dense - b_dense)
26+
self._assert((b - a).to_dense(), b_dense - a_dense)
2627

27-
# pandas uses future division
28-
self._assert((a / b).to_dense(), a_dense * 1.0 / b_dense)
29-
self._assert((b / a).to_dense(), b_dense * 1.0 / a_dense)
28+
self._assert((a * b).to_dense(), a_dense * b_dense)
29+
self._assert((b * a).to_dense(), b_dense * a_dense)
3030

31-
# ToDo: FIXME in GH 13843
32-
if not (self._base == pd.Series and a.dtype == 'int64'):
33-
self._assert((a // b).to_dense(), a_dense // b_dense)
34-
self._assert((b // a).to_dense(), b_dense // a_dense)
31+
# pandas uses future division
32+
self._assert((a / b).to_dense(), a_dense * 1.0 / b_dense)
33+
self._assert((b / a).to_dense(), b_dense * 1.0 / a_dense)
3534

36-
self._assert((a % b).to_dense(), a_dense % b_dense)
37-
self._assert((b % a).to_dense(), b_dense % a_dense)
35+
# ToDo: FIXME in GH 13843
36+
if not (self._base == pd.Series and a.dtype == 'int64'):
37+
self._assert((a // b).to_dense(), a_dense // b_dense)
38+
self._assert((b // a).to_dense(), b_dense // a_dense)
3839

39-
self._assert((a ** b).to_dense(), a_dense ** b_dense)
40-
self._assert((b ** a).to_dense(), b_dense ** a_dense)
40+
self._assert((a % b).to_dense(), a_dense % b_dense)
41+
self._assert((b % a).to_dense(), b_dense % a_dense)
4142

42-
# sparse & dense
43-
self._assert((a + b_dense).to_dense(), a_dense + b_dense)
44-
self._assert((b_dense + a).to_dense(), b_dense + a_dense)
43+
self._assert((a ** b).to_dense(), a_dense ** b_dense)
44+
self._assert((b ** a).to_dense(), b_dense ** a_dense)
45+
46+
# sparse & dense
47+
self._assert((a + b_dense).to_dense(), a_dense + b_dense)
48+
self._assert((b_dense + a).to_dense(), b_dense + a_dense)
4549

46-
self._assert((a - b_dense).to_dense(), a_dense - b_dense)
47-
self._assert((b_dense - a).to_dense(), b_dense - a_dense)
50+
self._assert((a - b_dense).to_dense(), a_dense - b_dense)
51+
self._assert((b_dense - a).to_dense(), b_dense - a_dense)
4852

49-
self._assert((a * b_dense).to_dense(), a_dense * b_dense)
50-
self._assert((b_dense * a).to_dense(), b_dense * a_dense)
53+
self._assert((a * b_dense).to_dense(), a_dense * b_dense)
54+
self._assert((b_dense * a).to_dense(), b_dense * a_dense)
5155

52-
# pandas uses future division
53-
self._assert((a / b_dense).to_dense(), a_dense * 1.0 / b_dense)
54-
self._assert((b_dense / a).to_dense(), b_dense * 1.0 / a_dense)
56+
# pandas uses future division
57+
self._assert((a / b_dense).to_dense(), a_dense * 1.0 / b_dense)
58+
self._assert((b_dense / a).to_dense(), b_dense * 1.0 / a_dense)
5559

56-
# ToDo: FIXME in GH 13843
57-
if not (self._base == pd.Series and a.dtype == 'int64'):
58-
self._assert((a // b_dense).to_dense(), a_dense // b_dense)
59-
self._assert((b_dense // a).to_dense(), b_dense // a_dense)
60+
# ToDo: FIXME in GH 13843
61+
if not (self._base == pd.Series and a.dtype == 'int64'):
62+
self._assert((a // b_dense).to_dense(), a_dense // b_dense)
63+
self._assert((b_dense // a).to_dense(), b_dense // a_dense)
6064

61-
self._assert((a % b_dense).to_dense(), a_dense % b_dense)
62-
self._assert((b_dense % a).to_dense(), b_dense % a_dense)
65+
self._assert((a % b_dense).to_dense(), a_dense % b_dense)
66+
self._assert((b_dense % a).to_dense(), b_dense % a_dense)
6367

64-
self._assert((a ** b_dense).to_dense(), a_dense ** b_dense)
65-
self._assert((b_dense ** a).to_dense(), b_dense ** a_dense)
68+
self._assert((a ** b_dense).to_dense(), a_dense ** b_dense)
69+
self._assert((b_dense ** a).to_dense(), b_dense ** a_dense)
6670

6771
def _check_bool_result(self, res):
6872
tm.assertIsInstance(res, self._klass)
6973
self.assertEqual(res.dtype, np.bool)
7074
self.assertIsInstance(res.fill_value, bool)
7175

7276
def _check_comparison_ops(self, a, b, a_dense, b_dense):
73-
# sparse & sparse
74-
self._check_bool_result(a == b)
75-
self._assert((a == b).to_dense(), a_dense == b_dense)
77+
with np.errstate(invalid='ignore'):
78+
# Unfortunately, trying to wrap the computation of each expected
79+
# value is with np.errstate() is too tedious.
80+
#
81+
# sparse & sparse
82+
self._check_bool_result(a == b)
83+
self._assert((a == b).to_dense(), a_dense == b_dense)
7684

77-
self._check_bool_result(a != b)
78-
self._assert((a != b).to_dense(), a_dense != b_dense)
85+
self._check_bool_result(a != b)
86+
self._assert((a != b).to_dense(), a_dense != b_dense)
7987

80-
self._check_bool_result(a >= b)
81-
self._assert((a >= b).to_dense(), a_dense >= b_dense)
88+
self._check_bool_result(a >= b)
89+
self._assert((a >= b).to_dense(), a_dense >= b_dense)
8290

83-
self._check_bool_result(a <= b)
84-
self._assert((a <= b).to_dense(), a_dense <= b_dense)
91+
self._check_bool_result(a <= b)
92+
self._assert((a <= b).to_dense(), a_dense <= b_dense)
8593

86-
self._check_bool_result(a > b)
87-
self._assert((a > b).to_dense(), a_dense > b_dense)
94+
self._check_bool_result(a > b)
95+
self._assert((a > b).to_dense(), a_dense > b_dense)
8896

89-
self._check_bool_result(a < b)
90-
self._assert((a < b).to_dense(), a_dense < b_dense)
97+
self._check_bool_result(a < b)
98+
self._assert((a < b).to_dense(), a_dense < b_dense)
9199

92-
# sparse & dense
93-
self._check_bool_result(a == b_dense)
94-
self._assert((a == b_dense).to_dense(), a_dense == b_dense)
100+
# sparse & dense
101+
self._check_bool_result(a == b_dense)
102+
self._assert((a == b_dense).to_dense(), a_dense == b_dense)
95103

96-
self._check_bool_result(a != b_dense)
97-
self._assert((a != b_dense).to_dense(), a_dense != b_dense)
104+
self._check_bool_result(a != b_dense)
105+
self._assert((a != b_dense).to_dense(), a_dense != b_dense)
98106

99-
self._check_bool_result(a >= b_dense)
100-
self._assert((a >= b_dense).to_dense(), a_dense >= b_dense)
107+
self._check_bool_result(a >= b_dense)
108+
self._assert((a >= b_dense).to_dense(), a_dense >= b_dense)
101109

102-
self._check_bool_result(a <= b_dense)
103-
self._assert((a <= b_dense).to_dense(), a_dense <= b_dense)
110+
self._check_bool_result(a <= b_dense)
111+
self._assert((a <= b_dense).to_dense(), a_dense <= b_dense)
104112

105-
self._check_bool_result(a > b_dense)
106-
self._assert((a > b_dense).to_dense(), a_dense > b_dense)
113+
self._check_bool_result(a > b_dense)
114+
self._assert((a > b_dense).to_dense(), a_dense > b_dense)
107115

108-
self._check_bool_result(a < b_dense)
109-
self._assert((a < b_dense).to_dense(), a_dense < b_dense)
116+
self._check_bool_result(a < b_dense)
117+
self._assert((a < b_dense).to_dense(), a_dense < b_dense)
110118

111119
def _check_logical_ops(self, a, b, a_dense, b_dense):
112120
# sparse & sparse

pandas/tests/test_groupby.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -2595,9 +2595,11 @@ def test_cython_fail_agg(self):
25952595

25962596
def test_apply_series_to_frame(self):
25972597
def f(piece):
2598+
with np.errstate(invalid='ignore'):
2599+
logged = np.log(piece)
25982600
return DataFrame({'value': piece,
25992601
'demeaned': piece - piece.mean(),
2600-
'logged': np.log(piece)})
2602+
'logged': logged})
26012603

26022604
dr = bdate_range('1/1/2000', periods=100)
26032605
ts = Series(np.random.randn(100), index=dr)

0 commit comments

Comments
 (0)