Skip to content

Commit 40ed7d9

Browse files
committed
BUG: partial indexing bug: python2.5 support + tweak #2107
1 parent 12f148b commit 40ed7d9

File tree

3 files changed

+4
-5
lines changed

3 files changed

+4
-5
lines changed

RELEASE.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ pandas 0.9.1
4242
- Enable referencing of Excel columns by their column names (#1936)
4343
- DataFrame.dot can accept ndarrays (#2042)
4444
- Support negative periods in Panel.shift (#2164)
45+
- Make .drop(...) work with non-unique indexes (#2101)
4546

4647
**Bug fixes**
4748

@@ -63,6 +64,7 @@ pandas 0.9.1
6364
- Use index name(s) (if any) in DataFrame.to_records (#2161)
6465
- Don't lose index names in Panel.to_frame/DataFrame.to_panel (#2163)
6566
- Work around length-0 boolean indexing NumPy bug (#2096)
67+
- Fix partial integer indexing bug in DataFrame.xs (#2107)
6668
6769
pandas 0.9.0
6870
============

pandas/core/frame.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2026,9 +2026,7 @@ def xs(self, key, axis=0, level=None, copy=True):
20262026
else:
20272027
indexer = loc
20282028
lev_num = labels._get_level_number(level)
2029-
lev = labels.levels[lev_num]
2030-
is_int_type = com.is_integer_dtype(lev)
2031-
if is_int_type:
2029+
if labels.levels[lev_num].inferred_type == 'integer':
20322030
indexer = self.index[loc]
20332031

20342032
result = self.ix[indexer]

pandas/tests/test_multilevel.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -360,11 +360,10 @@ def test_xs_level_multiple(self):
360360
assert_frame_equal(result, expected)
361361

362362
#GH2107
363-
import itertools
364363
from string import letters
365364
dates = range(20111201, 20111205)
366365
ids = letters[:5]
367-
idx = MultiIndex.from_tuples([x for x in itertools.product(dates, ids)])
366+
idx = MultiIndex.from_tuples([x for x in cart_product(dates, ids)])
368367
idx.names = ['date', 'secid']
369368
df = DataFrame(np.random.randn(len(idx), 3), idx, ['X', 'Y', 'Z'])
370369
rs = df.xs(20111201, level='date')

0 commit comments

Comments
 (0)