|
14 | 14 | from numpy.testing import assert_array_equal
|
15 | 15 | from numpy.random import randint
|
16 | 16 |
|
17 |
| -from pandas.compat import range, lrange, u |
| 17 | +from pandas.compat import range, lrange, u, unichr |
18 | 18 | import pandas.compat as compat
|
19 | 19 | from pandas import (Index, Series, TimeSeries, DataFrame, isnull, notnull,
|
20 | 20 | bdate_range, date_range, MultiIndex)
|
@@ -630,6 +630,8 @@ def test_empty_str_methods(self):
|
630 | 630 | tm.assert_series_equal(empty_str, empty.str.islower())
|
631 | 631 | tm.assert_series_equal(empty_str, empty.str.isupper())
|
632 | 632 | tm.assert_series_equal(empty_str, empty.str.istitle())
|
| 633 | + tm.assert_series_equal(empty_str, empty.str.isnumeric()) |
| 634 | + tm.assert_series_equal(empty_str, empty.str.isdecimal()) |
633 | 635 |
|
634 | 636 | def test_ismethods(self):
|
635 | 637 | values = ['A', 'b', 'Xy', '4', '3A', '', 'TT', '55', '-', ' ']
|
@@ -659,6 +661,31 @@ def test_ismethods(self):
|
659 | 661 | self.assertEquals(str_s.str.isupper().tolist(), [v.isupper() for v in values])
|
660 | 662 | self.assertEquals(str_s.str.istitle().tolist(), [v.istitle() for v in values])
|
661 | 663 |
|
| 664 | + def test_isnumeric(self): |
| 665 | + # 0x00bc: ¼ VULGAR FRACTION ONE QUARTER |
| 666 | + # 0x2605: ★ not number |
| 667 | + # 0x1378: ፸ ETHIOPIC NUMBER SEVENTY |
| 668 | + # 0xFF13: 3 Em 3 |
| 669 | + values = ['A', '3', unichr(0x00bc), unichr(0x2605), |
| 670 | + unichr(0x1378), unichr(0xFF13), 'four'] |
| 671 | + s = Series(values) |
| 672 | + numeric_e = [False, True, True, False, True, True, False] |
| 673 | + decimal_e = [False, True, False, False, False, True, False] |
| 674 | + tm.assert_series_equal(s.str.isnumeric(), Series(numeric_e)) |
| 675 | + tm.assert_series_equal(s.str.isdecimal(), Series(decimal_e)) |
| 676 | + unicodes = [u('A'), u('3'), unichr(0x00bc), unichr(0x2605), |
| 677 | + unichr(0x1378), unichr(0xFF13), u('four')] |
| 678 | + self.assertEquals(s.str.isnumeric().tolist(), [v.isnumeric() for v in unicodes]) |
| 679 | + self.assertEquals(s.str.isdecimal().tolist(), [v.isdecimal() for v in unicodes]) |
| 680 | + |
| 681 | + values = ['A', np.nan, unichr(0x00bc), unichr(0x2605), |
| 682 | + np.nan, unichr(0xFF13), 'four'] |
| 683 | + s = Series(values) |
| 684 | + numeric_e = [False, np.nan, True, False, np.nan, True, False] |
| 685 | + decimal_e = [False, np.nan, False, False, np.nan, True, False] |
| 686 | + tm.assert_series_equal(s.str.isnumeric(), Series(numeric_e)) |
| 687 | + tm.assert_series_equal(s.str.isdecimal(), Series(decimal_e)) |
| 688 | + |
662 | 689 | def test_get_dummies(self):
|
663 | 690 | s = Series(['a|b', 'a|c', np.nan])
|
664 | 691 | result = s.str.get_dummies('|')
|
|
0 commit comments