Skip to content

Commit 05c488d

Browse files
committed
fix indexing PandasMultiIndexingAdapater
When level is not None: - if result is another adapter: propagate it properly - if result is a numpy adapter: use level values
1 parent 3ca6a02 commit 05c488d

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

xarray/core/indexing.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -1483,7 +1483,7 @@ def __getitem__(
14831483
(key,) = key
14841484

14851485
if getattr(key, "ndim", 0) > 1: # Return np-array if multidimensional
1486-
return NumpyIndexingAdapter(self.array.values)[indexer]
1486+
return NumpyIndexingAdapter(np.asarray(self))[indexer]
14871487

14881488
result = self.array[key]
14891489

@@ -1542,6 +1542,13 @@ def _convert_scalar(self, item):
15421542
item = item[idx]
15431543
return super()._convert_scalar(item)
15441544

1545+
def __getitem__(self, indexer):
1546+
result = super().__getitem__(indexer)
1547+
if isinstance(result, type(self)):
1548+
result.level = self.level
1549+
1550+
return result
1551+
15451552
def __repr__(self) -> str:
15461553
if self.level is None:
15471554
return super().__repr__()

0 commit comments

Comments
 (0)