Skip to content

Commit 236d3f3

Browse files
committed
Reorder slice and hashable in __getitem__
1 parent 192db0d commit 236d3f3

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

pandas/core/frame.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -3849,6 +3849,11 @@ def __getitem__(self, key):
38493849
key = lib.item_from_zerodim(key)
38503850
key = com.apply_if_callable(key, self)
38513851

3852+
# Do we have a slicer (on rows)?
3853+
# As of Python 3.12, slice is hashable so check it first
3854+
if isinstance(key, slice):
3855+
return self._getitem_slice(key)
3856+
38523857
if is_hashable(key) and not is_iterator(key):
38533858
# is_iterator to exclude generator e.g. test_getitem_listlike
38543859
# shortcut if the key is in columns
@@ -3865,10 +3870,6 @@ def __getitem__(self, key):
38653870
elif is_mi and self.columns.is_unique and key in self.columns:
38663871
return self._getitem_multilevel(key)
38673872

3868-
# Do we have a slicer (on rows)?
3869-
if isinstance(key, slice):
3870-
return self._getitem_slice(key)
3871-
38723873
# Do we have a (boolean) DataFrame?
38733874
if isinstance(key, DataFrame):
38743875
return self.where(key)

0 commit comments

Comments
 (0)