23
23
from pandas .tests .frame .common import TestData
24
24
25
25
26
- @pytest .fixture
27
- def frame_of_index_cols ():
28
- df = DataFrame ({'A' : ['foo' , 'foo' , 'foo' , 'bar' , 'bar' ],
29
- 'B' : ['one' , 'two' , 'three' , 'one' , 'two' ],
30
- 'C' : ['a' , 'b' , 'c' , 'd' , 'e' ],
31
- 'D' : np .random .randn (5 ),
32
- 'E' : np .random .randn (5 )})
33
- return df
34
-
35
-
36
26
class TestDataFrameAlterAxes (TestData ):
37
27
38
- def test_set_index_directly (self ):
39
- df = self . mixed_frame . copy ()
28
+ def test_set_index_directly (self , mixed_frame ):
29
+ df = mixed_frame
40
30
idx = Index (np .arange (len (df ))[::- 1 ])
41
31
42
32
df .index = idx
43
33
tm .assert_index_equal (df .index , idx )
44
34
with tm .assert_raises_regex (ValueError , 'Length mismatch' ):
45
35
df .index = idx [::2 ]
46
36
47
- def test_set_index (self ):
48
- df = self . mixed_frame . copy ()
37
+ def test_set_index (self , mixed_frame ):
38
+ df = mixed_frame
49
39
idx = Index (np .arange (len (df ))[::- 1 ])
50
40
51
41
df = df .set_index (idx )
@@ -408,11 +398,11 @@ def test_set_index_empty_column(self):
408
398
names = ['a' , 'x' ])
409
399
tm .assert_frame_equal (result , expected )
410
400
411
- def test_set_columns (self ):
412
- cols = Index (np .arange (len (self . mixed_frame .columns )))
413
- self . mixed_frame .columns = cols
401
+ def test_set_columns (self , mixed_frame ):
402
+ cols = Index (np .arange (len (mixed_frame .columns )))
403
+ mixed_frame .columns = cols
414
404
with tm .assert_raises_regex (ValueError , 'Length mismatch' ):
415
- self . mixed_frame .columns = cols [::2 ]
405
+ mixed_frame .columns = cols [::2 ]
416
406
417
407
def test_dti_set_index_reindex (self ):
418
408
# GH 6631
@@ -440,20 +430,20 @@ def test_dti_set_index_reindex(self):
440
430
441
431
# Renaming
442
432
443
- def test_rename (self ):
433
+ def test_rename (self , frame ):
444
434
mapping = {
445
435
'A' : 'a' ,
446
436
'B' : 'b' ,
447
437
'C' : 'c' ,
448
438
'D' : 'd'
449
439
}
450
440
451
- renamed = self . frame .rename (columns = mapping )
452
- renamed2 = self . frame .rename (columns = str .lower )
441
+ renamed = frame .rename (columns = mapping )
442
+ renamed2 = frame .rename (columns = str .lower )
453
443
454
444
tm .assert_frame_equal (renamed , renamed2 )
455
445
tm .assert_frame_equal (renamed2 .rename (columns = str .upper ),
456
- self . frame , check_names = False )
446
+ frame , check_names = False )
457
447
458
448
# index
459
449
data = {
@@ -469,14 +459,14 @@ def test_rename(self):
469
459
tm .assert_index_equal (renamed .index , Index (['BAR' , 'FOO' ]))
470
460
471
461
# have to pass something
472
- pytest .raises (TypeError , self . frame .rename )
462
+ pytest .raises (TypeError , frame .rename )
473
463
474
464
# partial columns
475
- renamed = self . frame .rename (columns = {'C' : 'foo' , 'D' : 'bar' })
465
+ renamed = frame .rename (columns = {'C' : 'foo' , 'D' : 'bar' })
476
466
tm .assert_index_equal (renamed .columns , Index (['A' , 'B' , 'foo' , 'bar' ]))
477
467
478
468
# other axis
479
- renamed = self . frame .T .rename (index = {'C' : 'foo' , 'D' : 'bar' })
469
+ renamed = frame .T .rename (index = {'C' : 'foo' , 'D' : 'bar' })
480
470
tm .assert_index_equal (renamed .index , Index (['A' , 'B' , 'foo' , 'bar' ]))
481
471
482
472
# index with name
@@ -487,9 +477,8 @@ def test_rename(self):
487
477
Index (['bar' , 'foo' ], name = 'name' ))
488
478
assert renamed .index .name == renamer .index .name
489
479
490
- def test_rename_axis_inplace (self ):
480
+ def test_rename_axis_inplace (self , frame ):
491
481
# GH 15704
492
- frame = self .frame .copy ()
493
482
expected = frame .rename_axis ('foo' )
494
483
result = frame .copy ()
495
484
no_return = result .rename_axis ('foo' , inplace = True )
@@ -598,18 +587,18 @@ def test_rename_multiindex(self):
598
587
level = 0 )
599
588
tm .assert_index_equal (renamed .index , new_index )
600
589
601
- def test_rename_nocopy (self ):
602
- renamed = self . frame .rename (columns = {'C' : 'foo' }, copy = False )
590
+ def test_rename_nocopy (self , frame ):
591
+ renamed = frame .rename (columns = {'C' : 'foo' }, copy = False )
603
592
renamed ['foo' ] = 1.
604
- assert (self . frame ['C' ] == 1. ).all ()
593
+ assert (frame ['C' ] == 1. ).all ()
605
594
606
- def test_rename_inplace (self ):
607
- self . frame .rename (columns = {'C' : 'foo' })
608
- assert 'C' in self . frame
609
- assert 'foo' not in self . frame
595
+ def test_rename_inplace (self , frame ):
596
+ frame .rename (columns = {'C' : 'foo' })
597
+ assert 'C' in frame
598
+ assert 'foo' not in frame
610
599
611
- c_id = id (self . frame ['C' ])
612
- frame = self . frame .copy ()
600
+ c_id = id (frame ['C' ])
601
+ frame = frame .copy ()
613
602
frame .rename (columns = {'C' : 'foo' }, inplace = True )
614
603
615
604
assert 'C' not in frame
@@ -682,8 +671,8 @@ def test_reorder_levels(self):
682
671
result = df .reorder_levels (['L0' , 'L0' , 'L0' ])
683
672
tm .assert_frame_equal (result , expected )
684
673
685
- def test_reset_index (self ):
686
- stacked = self . frame .stack ()[::2 ]
674
+ def test_reset_index (self , frame ):
675
+ stacked = frame .stack ()[::2 ]
687
676
stacked = DataFrame ({'foo' : stacked , 'bar' : stacked })
688
677
689
678
names = ['first' , 'second' ]
@@ -703,55 +692,55 @@ def test_reset_index(self):
703
692
check_names = False )
704
693
705
694
# default name assigned
706
- rdf = self . frame .reset_index ()
707
- exp = Series (self . frame .index .values , name = 'index' )
695
+ rdf = frame .reset_index ()
696
+ exp = Series (frame .index .values , name = 'index' )
708
697
tm .assert_series_equal (rdf ['index' ], exp )
709
698
710
699
# default name assigned, corner case
711
- df = self . frame .copy ()
700
+ df = frame .copy ()
712
701
df ['index' ] = 'foo'
713
702
rdf = df .reset_index ()
714
- exp = Series (self . frame .index .values , name = 'level_0' )
703
+ exp = Series (frame .index .values , name = 'level_0' )
715
704
tm .assert_series_equal (rdf ['level_0' ], exp )
716
705
717
706
# but this is ok
718
- self . frame .index .name = 'index'
719
- deleveled = self . frame .reset_index ()
720
- tm .assert_series_equal (deleveled ['index' ], Series (self . frame .index ))
707
+ frame .index .name = 'index'
708
+ deleveled = frame .reset_index ()
709
+ tm .assert_series_equal (deleveled ['index' ], Series (frame .index ))
721
710
tm .assert_index_equal (deleveled .index ,
722
711
Index (np .arange (len (deleveled ))))
723
712
724
713
# preserve column names
725
- self . frame .columns .name = 'columns'
726
- resetted = self . frame .reset_index ()
714
+ frame .columns .name = 'columns'
715
+ resetted = frame .reset_index ()
727
716
assert resetted .columns .name == 'columns'
728
717
729
718
# only remove certain columns
730
- frame = self . frame .reset_index ().set_index (['index' , 'A' , 'B' ])
731
- rs = frame .reset_index (['A' , 'B' ])
719
+ df = frame .reset_index ().set_index (['index' , 'A' , 'B' ])
720
+ rs = df .reset_index (['A' , 'B' ])
732
721
733
722
# TODO should reset_index check_names ?
734
- tm .assert_frame_equal (rs , self . frame , check_names = False )
723
+ tm .assert_frame_equal (rs , frame , check_names = False )
735
724
736
- rs = frame .reset_index (['index' , 'A' , 'B' ])
737
- tm .assert_frame_equal (rs , self . frame .reset_index (), check_names = False )
725
+ rs = df .reset_index (['index' , 'A' , 'B' ])
726
+ tm .assert_frame_equal (rs , frame .reset_index (), check_names = False )
738
727
739
- rs = frame .reset_index (['index' , 'A' , 'B' ])
740
- tm .assert_frame_equal (rs , self . frame .reset_index (), check_names = False )
728
+ rs = df .reset_index (['index' , 'A' , 'B' ])
729
+ tm .assert_frame_equal (rs , frame .reset_index (), check_names = False )
741
730
742
- rs = frame .reset_index ('A' )
743
- xp = self . frame .reset_index ().set_index (['index' , 'B' ])
731
+ rs = df .reset_index ('A' )
732
+ xp = frame .reset_index ().set_index (['index' , 'B' ])
744
733
tm .assert_frame_equal (rs , xp , check_names = False )
745
734
746
735
# test resetting in place
747
- df = self . frame .copy ()
748
- resetted = self . frame .reset_index ()
736
+ df = frame .copy ()
737
+ resetted = frame .reset_index ()
749
738
df .reset_index (inplace = True )
750
739
tm .assert_frame_equal (df , resetted , check_names = False )
751
740
752
- frame = self . frame .reset_index ().set_index (['index' , 'A' , 'B' ])
753
- rs = frame .reset_index ('A' , drop = True )
754
- xp = self . frame .copy ()
741
+ df = frame .reset_index ().set_index (['index' , 'A' , 'B' ])
742
+ rs = df .reset_index ('A' , drop = True )
743
+ xp = frame .copy ()
755
744
del xp ['A' ]
756
745
xp = xp .set_index (['B' ], append = True )
757
746
tm .assert_frame_equal (rs , xp , check_names = False )
@@ -929,8 +918,8 @@ def test_set_index_names(self):
929
918
# Check equality
930
919
tm .assert_index_equal (df .set_index ([df .index , idx2 ]).index , mi2 )
931
920
932
- def test_rename_objects (self ):
933
- renamed = self . mixed_frame .rename (columns = str .upper )
921
+ def test_rename_objects (self , mixed_frame ):
922
+ renamed = mixed_frame .rename (columns = str .upper )
934
923
935
924
assert 'FOO' in renamed
936
925
assert 'foo' not in renamed
@@ -1053,15 +1042,13 @@ def test_rename_positional(self):
1053
1042
assert 'rename' in message
1054
1043
assert 'Use named arguments' in message
1055
1044
1056
- def test_assign_columns (self ):
1057
- self . frame ['hi' ] = 'there'
1045
+ def test_assign_columns (self , frame ):
1046
+ frame ['hi' ] = 'there'
1058
1047
1059
- frame = self .frame .copy ()
1060
- frame .columns = ['foo' , 'bar' , 'baz' , 'quux' , 'foo2' ]
1061
- tm .assert_series_equal (self .frame ['C' ], frame ['baz' ],
1062
- check_names = False )
1063
- tm .assert_series_equal (self .frame ['hi' ], frame ['foo2' ],
1064
- check_names = False )
1048
+ df = frame .copy ()
1049
+ df .columns = ['foo' , 'bar' , 'baz' , 'quux' , 'foo2' ]
1050
+ tm .assert_series_equal (frame ['C' ], df ['baz' ], check_names = False )
1051
+ tm .assert_series_equal (frame ['hi' ], df ['foo2' ], check_names = False )
1065
1052
1066
1053
def test_set_index_preserve_categorical_dtype (self ):
1067
1054
# GH13743, GH13854
0 commit comments