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 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'