Skip to content

Commit d010899

Browse files
committed
BUG: get_level_values should return Index to avoid boxing issues. close #2449
1 parent ec86497 commit d010899

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

pandas/core/index.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1551,7 +1551,7 @@ def get_level_values(self, level):
15511551
values : ndarray
15521552
"""
15531553
num = self._get_level_number(level)
1554-
unique_vals = self.levels[num].values
1554+
unique_vals = self.levels[num] # .values
15551555
labels = self.labels[num]
15561556
return unique_vals.take(labels)
15571557

pandas/tseries/tests/test_timeseries.py

+13
Original file line numberDiff line numberDiff line change
@@ -2043,6 +2043,19 @@ def test_from_M8_structured(self):
20432043
s = Series.from_array(arr['Date'], Index([0]))
20442044
self.assertEqual(s[0], dates[0][0])
20452045

2046+
def test_get_level_values_box(self):
2047+
from pandas import MultiIndex
2048+
2049+
dates = date_range('1/1/2000', periods=4)
2050+
levels = [dates, [0, 1]]
2051+
labels = [[0, 0, 1, 1, 2, 2, 3, 3],
2052+
[0, 1, 0, 1, 0, 1, 0, 1]]
2053+
2054+
index = MultiIndex(levels=levels, labels=labels)
2055+
2056+
self.assertTrue(isinstance(index.get_level_values(0)[0], Timestamp))
2057+
2058+
20462059
class TestLegacyCompat(unittest.TestCase):
20472060

20482061
def setUp(self):

0 commit comments

Comments
 (0)