@@ -1846,33 +1846,41 @@ def roundtrip(data, header=True, parser_hdr=0, index=True):
1846
1846
1847
1847
def test_duplicated_columns (self , * _ ):
1848
1848
# see gh-5235
1849
- write_frame = DataFrame ([[1 , 2 , 3 ], [1 , 2 , 3 ], [1 , 2 , 3 ]])
1850
- col_names = ["A" , "B" , "B" ]
1851
-
1852
- write_frame . columns = col_names
1853
- write_frame . to_excel ( self . path , "test1" )
1849
+ df = DataFrame ([[1 , 2 , 3 ], [1 , 2 , 3 ], [1 , 2 , 3 ]],
1850
+ columns = ["A" , "B" , "B" ])
1851
+ df . to_excel ( self . path , "test1" )
1852
+ expected = DataFrame ([[ 1 , 2 , 3 ], [ 1 , 2 , 3 ], [ 1 , 2 , 3 ]],
1853
+ columns = [ "A" , "B" , "B.1" ] )
1854
1854
1855
- read_frame = read_excel (self .path , "test1" , index_col = 0 )
1856
- read_frame .columns = col_names
1855
+ # By default, we mangle.
1856
+ result = read_excel (self .path , "test1" , index_col = 0 )
1857
+ tm .assert_frame_equal (result , expected )
1857
1858
1858
- tm .assert_frame_equal (write_frame , read_frame )
1859
+ # Explicitly, we pass in the parameter.
1860
+ result = read_excel (self .path , "test1" , index_col = 0 ,
1861
+ mangle_dupe_cols = True )
1862
+ tm .assert_frame_equal (result , expected )
1859
1863
1860
1864
# see gh-11007, gh-10970
1861
- write_frame = DataFrame ([[1 , 2 , 3 , 4 ], [5 , 6 , 7 , 8 ]],
1862
- columns = ["A" , "B" , "A" , "B" ])
1863
- write_frame .to_excel (self .path , "test1" )
1864
-
1865
- read_frame = read_excel (self .path , "test1" , index_col = 0 )
1866
- read_frame .columns = ["A" , "B" , "A" , "B" ]
1865
+ df = DataFrame ([[1 , 2 , 3 , 4 ], [5 , 6 , 7 , 8 ]],
1866
+ columns = ["A" , "B" , "A" , "B" ])
1867
+ df .to_excel (self .path , "test1" )
1867
1868
1868
- tm .assert_frame_equal (write_frame , read_frame )
1869
+ result = read_excel (self .path , "test1" , index_col = 0 )
1870
+ expected = DataFrame ([[1 , 2 , 3 , 4 ], [5 , 6 , 7 , 8 ]],
1871
+ columns = ["A" , "B" , "A.1" , "B.1" ])
1872
+ tm .assert_frame_equal (result , expected )
1869
1873
1870
1874
# see gh-10982
1871
- write_frame .to_excel (self .path , "test1" , index = False , header = False )
1872
- read_frame = read_excel (self .path , "test1" , header = None )
1875
+ df .to_excel (self .path , "test1" , index = False , header = False )
1876
+ result = read_excel (self .path , "test1" , header = None )
1873
1877
1874
- write_frame .columns = [0 , 1 , 2 , 3 ]
1875
- tm .assert_frame_equal (write_frame , read_frame )
1878
+ expected = DataFrame ([[1 , 2 , 3 , 4 ], [5 , 6 , 7 , 8 ]])
1879
+ tm .assert_frame_equal (result , expected )
1880
+
1881
+ msg = "Setting mangle_dupe_cols=False is not supported yet"
1882
+ with pytest .raises (ValueError , match = msg ):
1883
+ read_excel (self .path , "test1" , header = None , mangle_dupe_cols = False )
1876
1884
1877
1885
def test_swapped_columns (self , merge_cells , engine , ext ):
1878
1886
# Test for issue #5427.
0 commit comments