@@ -447,6 +447,80 @@ def test_reindex_dups(self):
447
447
# reindex fails
448
448
pytest .raises (ValueError , df .reindex , index = list (range (len (df ))))
449
449
450
+ def test_reindex_axis_style (self ):
451
+ df = pd .DataFrame ({"A" : [1 , 2 , 3 ], "B" : [4 , 5 , 6 ]})
452
+ expected = pd .DataFrame ({"A" : [1 , 2 , np .nan ], "B" : [4 , 5 , np .nan ]},
453
+ index = [0 , 1 , 3 ])
454
+ result = df .reindex ([0 , 1 , 3 ])
455
+ assert_frame_equal (result , expected )
456
+
457
+ result = df .reindex ([0 , 1 , 3 ], axis = 0 )
458
+ assert_frame_equal (result , expected )
459
+
460
+ result = df .reindex ([0 , 1 , 3 ], axis = 'index' )
461
+ assert_frame_equal (result , expected )
462
+
463
+ def test_reindex_positional_warns (self ):
464
+ df = pd .DataFrame ({"A" : [1 , 2 , 3 ], "B" : [4 , 5 , 6 ]})
465
+ expected = pd .DataFrame ({"A" : [1. , 2 ], 'B' : [4. , 5 ],
466
+ "C" : [np .nan , np .nan ]})
467
+ with tm .assert_produces_warning (UserWarning ):
468
+ result = df .reindex ([0 , 1 ], ['A' , 'B' , 'C' ])
469
+
470
+ assert_frame_equal (result , expected )
471
+
472
+ def test_reindex_axis_style_raises (self ):
473
+ df = pd .DataFrame ({"A" : [1 , 2 , 3 ], 'B' : [4 , 5 , 6 ]})
474
+ with tm .assert_raises_regex (TypeError , '' ):
475
+ df .reindex ([0 , 1 ], ['A' ], axis = 1 )
476
+
477
+ with tm .assert_raises_regex (TypeError , '' ):
478
+ df .reindex ([0 , 1 ], ['A' ], axis = 'index' )
479
+
480
+ with tm .assert_raises_regex (TypeError , '' ):
481
+ df .reindex (index = [0 , 1 ], axis = 'index' )
482
+
483
+ with tm .assert_raises_regex (TypeError , '' ):
484
+ df .reindex (index = [0 , 1 ], axis = 'columns' )
485
+
486
+ with tm .assert_raises_regex (TypeError , '' ):
487
+ df .reindex (columns = [0 , 1 ], axis = 'columns' )
488
+
489
+ with tm .assert_raises_regex (TypeError , '' ):
490
+ df .reindex (index = [0 , 1 ], columns = [0 , 1 ], axis = 'columns' )
491
+
492
+ with tm .assert_raises_regex (TypeError , '' ):
493
+ df .reindex ([0 , 1 ], [0 ], ['A' ])
494
+
495
+ def test_reindex_api_equivalence (self ):
496
+ # equivalence of the labels/axis and index/columns API's
497
+ df = DataFrame ([[1 , 2 , 3 ], [3 , 4 , 5 ], [5 , 6 , 7 ]],
498
+ index = ['a' , 'b' , 'c' ],
499
+ columns = ['d' , 'e' , 'f' ])
500
+
501
+ res1 = df .reindex (['b' , 'a' ])
502
+ res2 = df .reindex (index = ['b' , 'a' ])
503
+ res3 = df .reindex (labels = ['b' , 'a' ])
504
+ res4 = df .reindex (labels = ['b' , 'a' ], axis = 0 )
505
+ res5 = df .reindex (['b' , 'a' ], axis = 0 )
506
+ for res in [res2 , res3 , res4 , res5 ]:
507
+ tm .assert_frame_equal (res1 , res )
508
+
509
+ res1 = df .reindex (columns = ['e' , 'd' ])
510
+ res2 = df .reindex (['e' , 'd' ], axis = 1 )
511
+ res3 = df .reindex (labels = ['e' , 'd' ], axis = 1 )
512
+ for res in [res2 , res3 ]:
513
+ tm .assert_frame_equal (res1 , res )
514
+
515
+ with tm .assert_produces_warning (UserWarning ) as m :
516
+ res1 = df .reindex (['b' , 'a' ], ['e' , 'd' ])
517
+ assert 'reindex' in str (m [0 ].message )
518
+ res2 = df .reindex (columns = ['e' , 'd' ], index = ['b' , 'a' ])
519
+ res3 = df .reindex (labels = ['b' , 'a' ], axis = 0 ).reindex (labels = ['e' , 'd' ],
520
+ axis = 1 )
521
+ for res in [res2 , res3 ]:
522
+ tm .assert_frame_equal (res1 , res )
523
+
450
524
def test_align (self ):
451
525
af , bf = self .frame .align (self .frame )
452
526
assert af ._data is not self .frame ._data
@@ -974,21 +1048,21 @@ def test_reindex_with_nans(self):
974
1048
def test_reindex_multi (self ):
975
1049
df = DataFrame (np .random .randn (3 , 3 ))
976
1050
977
- result = df .reindex (lrange (4 ), lrange (4 ))
1051
+ result = df .reindex (index = lrange (4 ), columns = lrange (4 ))
978
1052
expected = df .reindex (lrange (4 )).reindex (columns = lrange (4 ))
979
1053
980
1054
assert_frame_equal (result , expected )
981
1055
982
1056
df = DataFrame (np .random .randint (0 , 10 , (3 , 3 )))
983
1057
984
- result = df .reindex (lrange (4 ), lrange (4 ))
1058
+ result = df .reindex (index = lrange (4 ), columns = lrange (4 ))
985
1059
expected = df .reindex (lrange (4 )).reindex (columns = lrange (4 ))
986
1060
987
1061
assert_frame_equal (result , expected )
988
1062
989
1063
df = DataFrame (np .random .randint (0 , 10 , (3 , 3 )))
990
1064
991
- result = df .reindex (lrange (2 ), lrange (2 ))
1065
+ result = df .reindex (index = lrange (2 ), columns = lrange (2 ))
992
1066
expected = df .reindex (lrange (2 )).reindex (columns = lrange (2 ))
993
1067
994
1068
assert_frame_equal (result , expected )
0 commit comments