@@ -56,7 +56,6 @@ def setUp(self):
56
56
self .ymd .index .set_names (['year' , 'month' , 'day' ], inplace = True )
57
57
58
58
59
-
60
59
class TestMultiLevel (Base , tm .TestCase ):
61
60
62
61
def test_append (self ):
@@ -215,7 +214,6 @@ def test_reindex_preserve_levels(self):
215
214
chunk = ymdT .loc [:, new_index ]
216
215
self .assertIs (chunk .columns , new_index )
217
216
218
-
219
217
def test_repr_to_string (self ):
220
218
repr (self .frame )
221
219
repr (self .ymd )
@@ -713,7 +711,6 @@ def test_getitem_partial_column_select(self):
713
711
self .assertRaises (KeyError , df .loc .__getitem__ ,
714
712
(('a' , 'foo' ), slice (None , None )))
715
713
716
-
717
714
def test_delevel_infer_dtype (self ):
718
715
tuples = [tuple
719
716
for tuple in cart_product (
@@ -737,7 +734,6 @@ def test_reset_index_with_drop(self):
737
734
deleveled = self .series .reset_index (drop = True )
738
735
tm .assertIsInstance (deleveled , Series )
739
736
740
-
741
737
def test_count_level (self ):
742
738
def _check_counts (frame , axis = 0 ):
743
739
index = frame ._get_axis (axis )
@@ -2358,26 +2354,6 @@ def test_sorting_repr_8017(self):
2358
2354
result = result .sort_index (axis = 1 )
2359
2355
tm .assert_frame_equal (result , expected )
2360
2356
2361
- def test_getitem_multilevel_index_tuple_unsorted (self ):
2362
- index_columns = list ("abc" )
2363
- df = DataFrame ([[0 , 1 , 0 , "x" ], [0 , 0 , 1 , "y" ]],
2364
- columns = index_columns + ["data" ])
2365
- df = df .set_index (index_columns )
2366
- query_index = df .index [:1 ]
2367
- rs = df .loc [query_index , "data" ]
2368
-
2369
- xp_idx = MultiIndex .from_tuples ([(0 , 1 , 0 )], names = ['a' , 'b' , 'c' ])
2370
- xp = Series (['x' ], index = xp_idx , name = 'data' )
2371
- tm .assert_series_equal (rs , xp )
2372
-
2373
- def test_getitem_slice_not_sorted (self ):
2374
- df = self .frame .sort_index (level = 1 ).T
2375
-
2376
- # buglet with int typechecking
2377
- result = df .iloc [:, :np .int32 (3 )]
2378
- expected = df .reindex (columns = df .columns [:3 ])
2379
- tm .assert_frame_equal (result , expected )
2380
-
2381
2357
def test_sort_index_level (self ):
2382
2358
df = self .frame .copy ()
2383
2359
df .index = np .arange (len (df ))
@@ -2497,14 +2473,6 @@ def test_sort_index_and_reconstruction(self):
2497
2473
assert result .columns .is_lexsorted ()
2498
2474
assert result .columns .is_monotonic
2499
2475
2500
- # def test_
2501
- #df = pd.DataFrame({'col1': ['b','d','b','a'], 'col2': [3,1,1,2], 'data':['one','two','three','four']})
2502
-
2503
- #In [121]: df2 = df.set_index(['col1','col2'])
2504
-
2505
- #In [122]: df2.index.set_levels(['b','d','a'], level='col1', inplace=True)
2506
-
2507
- #In [123]: df2.index.set_labels([0,1,0,2], level='col1', inplace=True)
2508
2476
def test_is_lexsorted (self ):
2509
2477
levels = [[0 , 1 ], [0 , 1 , 2 ]]
2510
2478
@@ -2521,6 +2489,26 @@ def test_is_lexsorted(self):
2521
2489
self .assertFalse (index .is_lexsorted ())
2522
2490
self .assertEqual (index .lexsort_depth , 0 )
2523
2491
2492
+ def test_getitem_multilevel_index_tuple_not_sorted (self ):
2493
+ index_columns = list ("abc" )
2494
+ df = DataFrame ([[0 , 1 , 0 , "x" ], [0 , 0 , 1 , "y" ]],
2495
+ columns = index_columns + ["data" ])
2496
+ df = df .set_index (index_columns )
2497
+ query_index = df .index [:1 ]
2498
+ rs = df .loc [query_index , "data" ]
2499
+
2500
+ xp_idx = MultiIndex .from_tuples ([(0 , 1 , 0 )], names = ['a' , 'b' , 'c' ])
2501
+ xp = Series (['x' ], index = xp_idx , name = 'data' )
2502
+ tm .assert_series_equal (rs , xp )
2503
+
2504
+ def test_getitem_slice_not_sorted (self ):
2505
+ df = self .frame .sort_index (level = 1 ).T
2506
+
2507
+ # buglet with int typechecking
2508
+ result = df .iloc [:, :np .int32 (3 )]
2509
+ expected = df .reindex (columns = df .columns [:3 ])
2510
+ tm .assert_frame_equal (result , expected )
2511
+
2524
2512
def test_frame_getitem_not_sorted (self ):
2525
2513
df = self .frame .T
2526
2514
df ['foo' , 'four' ] = 'foo'
@@ -2542,6 +2530,31 @@ def test_frame_getitem_not_sorted(self):
2542
2530
tm .assert_frame_equal (result , expected )
2543
2531
tm .assert_frame_equal (result2 , expected )
2544
2532
2533
+ @pytest .mark .xfail (reason = "need axis reconstruction" )
2534
+ def test_frame_getitem_not_sorted2 (self ):
2535
+ # 13431
2536
+ df = DataFrame ({'col1' : ['b' , 'd' , 'b' , 'a' ],
2537
+ 'col2' : [3 , 1 , 1 , 2 ],
2538
+ 'data' : ['one' , 'two' , 'three' , 'four' ]})
2539
+
2540
+ df2 = df .set_index (['col1' , 'col2' ])
2541
+ df2_original = df2 .copy ()
2542
+
2543
+ df2 .index .set_levels (['b' , 'd' , 'a' ], level = 'col1' , inplace = True )
2544
+ df2 .index .set_labels ([0 , 1 , 0 , 2 ], level = 'col1' , inplace = True )
2545
+ assert not df2 .index .is_lexsorted ()
2546
+ assert not df2 .index .is_monotonic
2547
+
2548
+ assert df2_original .index .equals (df2 .index )
2549
+
2550
+ result = df2 .sort_index ()
2551
+ assert result .index .is_lexsorted ()
2552
+ assert result .index .is_monotonic
2553
+
2554
+ result = df2 .sort_index (level = 0 )
2555
+ assert result .index .is_lexsorted ()
2556
+ assert result .index .is_monotonic
2557
+
2545
2558
def test_series_getitem_not_sorted (self ):
2546
2559
arrays = [['bar' , 'bar' , 'baz' , 'baz' , 'qux' , 'qux' , 'foo' , 'foo' ],
2547
2560
['one' , 'two' , 'one' , 'two' , 'one' , 'two' , 'one' , 'two' ]]
0 commit comments