@@ -332,8 +332,6 @@ def _iloc_getitem_series_or_dataframe(
332332 elif isinstance (key , slice ):
333333 return series_or_dataframe ._slice (key .start , key .stop , key .step )
334334 elif pd .api .types .is_list_like (key ):
335- # TODO(henryjsolberg): support MultiIndex
336-
337335 if len (key ) == 0 :
338336 return typing .cast (
339337 typing .Union [bigframes .dataframe .DataFrame , bigframes .series .Series ],
@@ -346,15 +344,18 @@ def _iloc_getitem_series_or_dataframe(
346344 original_series_name if original_series_name is not None else "0"
347345 )
348346 df = series_or_dataframe .to_frame ()
349- original_index_name = df .index .name
350- temporary_index_name = guid .generate_guid (prefix = "temp_iloc_index_" )
351- df = df .rename_axis (temporary_index_name )
347+ original_index_names = df .index .names
348+ temporary_index_names = [
349+ guid .generate_guid (prefix = "temp_iloc_index_" )
350+ for _ in range (len (df .index .names ))
351+ ]
352+ df = df .rename_axis (temporary_index_names )
352353
353354 # set to offset index and use regular loc, then restore index
354355 df = df .reset_index (drop = False )
355356 result = df .loc [key ]
356- result = result .set_index (temporary_index_name )
357- result = result .rename_axis (original_index_name )
357+ result = result .set_index (temporary_index_names )
358+ result = result .rename_axis (original_index_names )
358359
359360 if isinstance (series_or_dataframe , bigframes .series .Series ):
360361 result = result [series_name ]
0 commit comments