@@ -684,7 +684,7 @@ def is_monotonic_increasing(self):
684684 """
685685
686686 # reversed() because lexsort() wants the most significant key last.
687- values = [self ._get_level_values (i )
687+ values = [self ._get_level_values (i ). values
688688 for i in reversed (range (len (self .levels )))]
689689 try :
690690 sort_order = np .lexsort (values )
@@ -866,7 +866,8 @@ def _get_level_values(self, level):
866866 labels = self .labels [level ]
867867 filled = algos .take_1d (unique ._values , labels ,
868868 fill_value = unique ._na_value )
869- return filled
869+ values = unique ._shallow_copy (filled )
870+ return values
870871
871872 def get_level_values (self , level ):
872873 """
@@ -883,7 +884,7 @@ def get_level_values(self, level):
883884 """
884885 level = self ._get_level_number (level )
885886 values = self ._get_level_values (level )
886- return self . levels [ level ]. _shallow_copy ( values )
887+ return values
887888
888889 def format (self , space = 2 , sparsify = None , adjoin = True , names = False ,
889890 na_rep = None , formatter = None ):
@@ -966,7 +967,8 @@ def to_frame(self, index=True):
966967 """
967968
968969 from pandas import DataFrame
969- result = DataFrame ({(name or level ): self .get_level_values (level )
970+ result = DataFrame ({(name or level ):
971+ self ._get_level_values (level )
970972 for name , level in
971973 zip (self .names , range (len (self .levels )))},
972974 copy = False )
@@ -1301,8 +1303,8 @@ def append(self, other):
13011303 for o in other ):
13021304 arrays = []
13031305 for i in range (self .nlevels ):
1304- label = self .get_level_values (i )
1305- appended = [o .get_level_values (i ) for o in other ]
1306+ label = self ._get_level_values (i )
1307+ appended = [o ._get_level_values (i ) for o in other ]
13061308 arrays .append (label .append (appended ))
13071309 return MultiIndex .from_arrays (arrays , names = self .names )
13081310
0 commit comments