From 83f409122c1b1b8da00e2261517db1227810e349 Mon Sep 17 00:00:00 2001 From: Johnny Gill Date: Tue, 13 Sep 2016 12:20:41 -0300 Subject: [PATCH 1/2] add check for infinity in __call__ of EngFormatter --- pandas/formats/format.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pandas/formats/format.py b/pandas/formats/format.py index 4740dd25c419d..e5089983ac8f7 100644 --- a/pandas/formats/format.py +++ b/pandas/formats/format.py @@ -2586,6 +2586,9 @@ def __call__(self, num): if decimal.Decimal.is_nan(dnum): return 'NaN' + if decimal.Decimal.is_infinite(dnum): + return 'inf' + sign = 1 if dnum < 0: # pragma: no cover From f2348e77dbf5debef0540210364a304bb671c021 Mon Sep 17 00:00:00 2001 From: Johnny Gill Date: Tue, 13 Sep 2016 16:59:41 -0300 Subject: [PATCH 2/2] test EngFormatter with np.inf --- pandas/tests/formats/test_format.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pandas/tests/formats/test_format.py b/pandas/tests/formats/test_format.py index ba7ad55a081cd..58e9b30e7f624 100644 --- a/pandas/tests/formats/test_format.py +++ b/pandas/tests/formats/test_format.py @@ -4047,6 +4047,14 @@ def test_nan(self): self.assertTrue('NaN' in result) self.reset_display_options() + def test_inf(self): + # Issue #11981 + + formatter = fmt.EngFormatter(accuracy=1, use_eng_prefix=True) + result = formatter(np.inf) + self.assertEqual(result, u('inf')) + + def _three_digit_exp(): return '%.4g' % 1.7e8 == '1.7e+008'