File tree 1 file changed +12
-8
lines changed
1 file changed +12
-8
lines changed Original file line number Diff line number Diff line change @@ -932,14 +932,18 @@ def stack_v3(frame: DataFrame, level: list[int]) -> Series | DataFrame:
932
932
if len (frame .columns ) == 1 :
933
933
data = frame .copy ()
934
934
else :
935
- # Take the data from frame corresponding to this idx value
936
- if len (level ) == 1 :
937
- idx = (idx ,)
938
- gen = iter (idx )
939
- column_indexer = tuple (
940
- next (gen ) if k in set_levels else slice (None )
941
- for k in range (frame .columns .nlevels )
942
- )
935
+ if not isinstance (frame .columns , MultiIndex ) and not isinstance (idx , tuple ):
936
+ # GH#57750 - if the frame is an Index with tuples, .loc below will fail
937
+ column_indexer = idx
938
+ else :
939
+ # Take the data from frame corresponding to this idx value
940
+ if len (level ) == 1 :
941
+ idx = (idx ,)
942
+ gen = iter (idx )
943
+ column_indexer = tuple (
944
+ next (gen ) if k in set_levels else slice (None )
945
+ for k in range (frame .columns .nlevels )
946
+ )
943
947
data = frame .loc [:, column_indexer ]
944
948
945
949
if len (level ) < frame .columns .nlevels :
You can’t perform that action at this time.
0 commit comments