@@ -1872,15 +1872,7 @@ def rename(index):
18721872 if level is None :
18731873 new_index_map = [(column , name if name is not None else rename (i ))
18741874 for i , (column , name ) in enumerate (self ._internal .index_map )]
1875- new_data_columns = [
1876- self ._internal .scol_for (column ).alias (name ) for column , name in new_index_map ]
1877- sdf = self ._sdf .select (new_data_columns + self ._internal .data_columns )
1878-
1879- # Now, new internal Spark columns are named as same as index name.
1880- new_index_map = [(name , name ) for column , name in new_index_map ]
1881-
1882- index_map = [('__index_level_0__' , None )]
1883- sdf = _InternalFrame .attach_default_index (sdf )
1875+ index_map = []
18841876 else :
18851877 if isinstance (level , (int , str )):
18861878 level = [level ]
@@ -1918,7 +1910,21 @@ def rename(index):
19181910 index_name if index_name is not None else rename (index_name )))
19191911 index_map .remove (info )
19201912
1921- sdf = self ._sdf
1913+ new_data_columns = [
1914+ self ._internal .scol_for (column ).alias (name ) for column , name in new_index_map ]
1915+
1916+ if len (index_map ) > 0 :
1917+ index_columns = [column for column , _ in index_map ]
1918+ sdf = self ._sdf .select (
1919+ index_columns + new_data_columns + self ._internal .data_columns )
1920+ else :
1921+ sdf = self ._sdf .select (new_data_columns + self ._internal .data_columns )
1922+
1923+ # Now, new internal Spark columns are named as same as index name.
1924+ new_index_map = [(name , name ) for column , name in new_index_map ]
1925+
1926+ index_map = [('__index_level_0__' , None )]
1927+ sdf = _InternalFrame .attach_default_index (sdf )
19221928
19231929 if drop :
19241930 new_index_map = []
0 commit comments