@@ -714,13 +714,13 @@ def test_unstack_unused_levels(self):
714
714
df = DataFrame ([[1 , 0 ]] * 3 , index = idx )
715
715
716
716
result = df .unstack ()
717
- exp_col = MultiIndex .from_product ([[ 0 , 1 ] , ["A" , "B" , "C" ]])
717
+ exp_col = MultiIndex .from_product ([range ( 2 ) , ["A" , "B" , "C" ]])
718
718
expected = DataFrame ([[1 , 1 , 1 , 0 , 0 , 0 ]], index = ["a" ], columns = exp_col )
719
719
tm .assert_frame_equal (result , expected )
720
720
assert (result .columns .levels [1 ] == idx .levels [1 ]).all ()
721
721
722
722
# Unused items on both levels
723
- levels = [[ 0 , 1 , 7 ], [ 0 , 1 , 2 , 3 ] ]
723
+ levels = [range ( 3 ), range ( 4 ) ]
724
724
codes = [[0 , 0 , 1 , 1 ], [0 , 2 , 0 , 2 ]]
725
725
idx = MultiIndex (levels , codes )
726
726
block = np .arange (4 ).reshape (2 , 2 )
@@ -752,7 +752,7 @@ def test_unstack_unused_levels_mixed_with_nan(
752
752
result = df .unstack (level = level )
753
753
exp_data = np .zeros (18 ) * np .nan
754
754
exp_data [idces ] = data
755
- cols = MultiIndex .from_product ([[ 0 , 1 ] , col_level ])
755
+ cols = MultiIndex .from_product ([range ( 2 ) , col_level ])
756
756
expected = DataFrame (exp_data .reshape (3 , 6 ), index = idx_level , columns = cols )
757
757
tm .assert_frame_equal (result , expected )
758
758
@@ -1067,7 +1067,7 @@ def test_stack_datetime_column_multiIndex(self, future_stack):
1067
1067
with tm .assert_produces_warning (warn , match = msg ):
1068
1068
result = df .stack (future_stack = future_stack )
1069
1069
1070
- eidx = MultiIndex .from_product ([( 0 , 1 , 2 , 3 ), ("B" ,)])
1070
+ eidx = MultiIndex .from_product ([range ( 4 ), ("B" ,)])
1071
1071
ecols = MultiIndex .from_tuples ([(t , "A" )])
1072
1072
expected = DataFrame ([1 , 2 , 3 , 4 ], index = eidx , columns = ecols )
1073
1073
tm .assert_frame_equal (result , expected )
@@ -1150,7 +1150,7 @@ def test_stack_full_multiIndex(self, future_stack):
1150
1150
expected = DataFrame (
1151
1151
[[0 , 2 ], [1 , np .nan ], [3 , 5 ], [4 , np .nan ]],
1152
1152
index = MultiIndex (
1153
- levels = [[ 0 , 1 ] , ["u" , "x" , "y" , "z" ]],
1153
+ levels = [range ( 2 ) , ["u" , "x" , "y" , "z" ]],
1154
1154
codes = [[0 , 0 , 1 , 1 ], [1 , 3 , 1 , 3 ]],
1155
1155
names = [None , "Lower" ],
1156
1156
),
@@ -1201,7 +1201,7 @@ def test_stack_multi_preserve_categorical_dtype(
1201
1201
s_cidx = pd .CategoricalIndex (labels , ordered = ordered )
1202
1202
expected_data = sorted (data ) if future_stack else data
1203
1203
expected = Series (
1204
- expected_data , index = MultiIndex .from_product ([[ 0 ] , s_cidx , cidx2 ])
1204
+ expected_data , index = MultiIndex .from_product ([range ( 1 ) , s_cidx , cidx2 ])
1205
1205
)
1206
1206
1207
1207
tm .assert_series_equal (result , expected )
@@ -1214,7 +1214,7 @@ def test_stack_preserve_categorical_dtype_values(self, future_stack):
1214
1214
cat = pd .Categorical (["a" , "a" , "b" , "c" ])
1215
1215
df = DataFrame ({"A" : cat , "B" : cat })
1216
1216
result = df .stack (future_stack = future_stack )
1217
- index = MultiIndex .from_product ([[ 0 , 1 , 2 , 3 ] , ["A" , "B" ]])
1217
+ index = MultiIndex .from_product ([range ( 4 ) , ["A" , "B" ]])
1218
1218
expected = Series (
1219
1219
pd .Categorical (["a" , "a" , "a" , "a" , "b" , "b" , "c" , "c" ]), index = index
1220
1220
)
@@ -1299,7 +1299,7 @@ def test_unstack_mixed_extension_types(self, level):
1299
1299
@pytest .mark .parametrize ("level" , [0 , "baz" ])
1300
1300
def test_unstack_swaplevel_sortlevel (self , level ):
1301
1301
# GH 20994
1302
- mi = MultiIndex .from_product ([[ 0 ] , ["d" , "c" ]], names = ["bar" , "baz" ])
1302
+ mi = MultiIndex .from_product ([range ( 1 ) , ["d" , "c" ]], names = ["bar" , "baz" ])
1303
1303
df = DataFrame ([[0 , 2 ], [1 , 3 ]], index = mi , columns = ["B" , "A" ])
1304
1304
df .columns .name = "foo"
1305
1305
@@ -1325,7 +1325,9 @@ def test_unstack_sort_false(frame_or_series, dtype):
1325
1325
result = obj .unstack (level = - 1 , sort = False )
1326
1326
1327
1327
if frame_or_series is DataFrame :
1328
- expected_columns = MultiIndex .from_tuples ([(0 , "b" ), (0 , "a" )])
1328
+ expected_columns = MultiIndex (
1329
+ levels = [range (1 ), ["b" , "a" ]], codes = [[0 , 0 ], [0 , 1 ]]
1330
+ )
1329
1331
else :
1330
1332
expected_columns = ["b" , "a" ]
1331
1333
expected = DataFrame (
@@ -1341,7 +1343,9 @@ def test_unstack_sort_false(frame_or_series, dtype):
1341
1343
result = obj .unstack (level = [1 , 2 ], sort = False )
1342
1344
1343
1345
if frame_or_series is DataFrame :
1344
- expected_columns = MultiIndex .from_tuples ([(0 , "z" , "b" ), (0 , "y" , "a" )])
1346
+ expected_columns = MultiIndex (
1347
+ levels = [range (1 ), ["z" , "y" ], ["b" , "a" ]], codes = [[0 , 0 ], [0 , 1 ], [0 , 1 ]]
1348
+ )
1345
1349
else :
1346
1350
expected_columns = MultiIndex .from_tuples ([("z" , "b" ), ("y" , "a" )])
1347
1351
expected = DataFrame (
@@ -1496,7 +1500,9 @@ def test_stack_positional_level_duplicate_column_names(future_stack):
1496
1500
result = df .stack (0 , future_stack = future_stack )
1497
1501
1498
1502
new_columns = Index (["y" , "z" ], name = "a" )
1499
- new_index = MultiIndex .from_tuples ([(0 , "x" ), (0 , "y" )], names = [None , "a" ])
1503
+ new_index = MultiIndex (
1504
+ levels = [range (1 ), ["x" , "y" ]], codes = [[0 , 0 ], [0 , 1 ]], names = [None , "a" ]
1505
+ )
1500
1506
expected = DataFrame ([[1 , 1 ], [1 , 1 ]], index = new_index , columns = new_columns )
1501
1507
1502
1508
tm .assert_frame_equal (result , expected )
0 commit comments