|
16 | 16 | from pandas import (Index, Series, DataFrame, isnull, notnull,
|
17 | 17 | bdate_range, date_range, _np_version_under1p7)
|
18 | 18 | from pandas.core.index import MultiIndex
|
| 19 | +from pandas.core.indexing import IndexingError |
19 | 20 | from pandas.tseries.index import Timestamp, DatetimeIndex
|
20 | 21 | import pandas.core.config as cf
|
21 | 22 | import pandas.lib as lib
|
@@ -795,6 +796,28 @@ def test_getitem_boolean_empty(self):
|
795 | 796 | self.assertEqual(s.index.name, 'index_name')
|
796 | 797 | self.assertEqual(s.dtype, np.int64)
|
797 | 798 |
|
| 799 | + # GH5877 |
| 800 | + # indexing with empty series |
| 801 | + s = Series(['A', 'B']) |
| 802 | + expected = Series(np.nan,index=['C'],dtype=object) |
| 803 | + result = s[Series(['C'], dtype=object)] |
| 804 | + assert_series_equal(result, expected) |
| 805 | + |
| 806 | + s = Series(['A', 'B']) |
| 807 | + expected = Series(dtype=object) |
| 808 | + result = s[Series([], dtype=object)] |
| 809 | + assert_series_equal(result, expected) |
| 810 | + |
| 811 | + # invalid because of the boolean indexer |
| 812 | + # that's empty or not-aligned |
| 813 | + def f(): |
| 814 | + s[Series([], dtype=bool)] |
| 815 | + self.assertRaises(IndexingError, f) |
| 816 | + |
| 817 | + def f(): |
| 818 | + s[Series([True], dtype=bool)] |
| 819 | + self.assertRaises(IndexingError, f) |
| 820 | + |
798 | 821 | def test_getitem_generator(self):
|
799 | 822 | gen = (x > 0 for x in self.series)
|
800 | 823 | result = self.series[gen]
|
|
0 commit comments