@@ -846,7 +846,7 @@ def _try_mi(k):
846
846
847
847
raise InvalidIndexError (key )
848
848
849
- def _get_level_values (self , level ):
849
+ def _get_level_values (self , level , copy = True ):
850
850
"""
851
851
Return vector of label values for requested level,
852
852
equal to the length of the index
@@ -856,6 +856,7 @@ def _get_level_values(self, level):
856
856
Parameters
857
857
----------
858
858
level : int level
859
+ copy : bool whether copy of results should be done
859
860
860
861
Returns
861
862
-------
@@ -866,7 +867,11 @@ def _get_level_values(self, level):
866
867
labels = self .labels [level ]
867
868
filled = algos .take_1d (unique ._values , labels ,
868
869
fill_value = unique ._na_value )
869
- return filled
870
+ if copy :
871
+ values = unique ._shallow_copy (filled )
872
+ else :
873
+ values = filled
874
+ return values
870
875
871
876
def get_level_values (self , level ):
872
877
"""
@@ -882,7 +887,7 @@ def get_level_values(self, level):
882
887
values : Index
883
888
"""
884
889
level = self ._get_level_number (level )
885
- values = self ._get_level_values (level )
890
+ values = self ._get_level_values (level , copy = False )
886
891
return self .levels [level ]._shallow_copy (values )
887
892
888
893
def format (self , space = 2 , sparsify = None , adjoin = True , names = False ,
0 commit comments