@@ -332,8 +332,6 @@ def _iloc_getitem_series_or_dataframe(
332
332
elif isinstance (key , slice ):
333
333
return series_or_dataframe ._slice (key .start , key .stop , key .step )
334
334
elif pd .api .types .is_list_like (key ):
335
- # TODO(henryjsolberg): support MultiIndex
336
-
337
335
if len (key ) == 0 :
338
336
return typing .cast (
339
337
typing .Union [bigframes .dataframe .DataFrame , bigframes .series .Series ],
@@ -346,15 +344,18 @@ def _iloc_getitem_series_or_dataframe(
346
344
original_series_name if original_series_name is not None else "0"
347
345
)
348
346
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 )
352
353
353
354
# set to offset index and use regular loc, then restore index
354
355
df = df .reset_index (drop = False )
355
356
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 )
358
359
359
360
if isinstance (series_or_dataframe , bigframes .series .Series ):
360
361
result = result [series_name ]
0 commit comments