@@ -1024,7 +1024,8 @@ def to_panel(self):
1024
1024
1025
1025
to_wide = deprecate ('to_wide' , to_panel )
1026
1026
1027
- def _helper_csvexcel (self , writer , na_rep = None , cols = None , header = True ,
1027
+ def _helper_csvexcel (self , writer , na_rep = None , cols = None ,
1028
+ col_aliases = None , header = True ,
1028
1029
index = True , index_label = None ):
1029
1030
if cols is None :
1030
1031
cols = self .columns
@@ -1053,7 +1054,15 @@ def _helper_csvexcel(self, writer, na_rep=None, cols=None, header=True,
1053
1054
index_label = [index_label ]
1054
1055
1055
1056
encoded_labels = list (index_label )
1056
- encoded_cols = list (cols )
1057
+ if col_aliases is not None :
1058
+ if len (col_aliases ) != len (cols ):
1059
+ raise ValueError (('Writing %d cols but got %d aliases'
1060
+ % (len (cols ), len (col_aliases ))))
1061
+ else :
1062
+ write_cols = col_aliases
1063
+ else :
1064
+ write_cols = cols
1065
+ encoded_cols = list (write_cols )
1057
1066
1058
1067
writer .writerow (encoded_labels + encoded_cols )
1059
1068
else :
@@ -1078,8 +1087,8 @@ def _helper_csvexcel(self, writer, na_rep=None, cols=None, header=True,
1078
1087
writer .writerow (row_fields )
1079
1088
1080
1089
def to_csv (self , path_or_buf , sep = "," , na_rep = '' , cols = None ,
1081
- header = True , index = True , index_label = None , mode = 'w' ,
1082
- nanRep = None , encoding = None ):
1090
+ col_aliases = None , header = True , index = True , index_label = None ,
1091
+ mode = 'w' , nanRep = None , encoding = None ):
1083
1092
"""
1084
1093
Write DataFrame to a comma-separated values (csv) file
1085
1094
@@ -1091,6 +1100,8 @@ def to_csv(self, path_or_buf, sep=",", na_rep='', cols=None,
1091
1100
Missing data representation
1092
1101
cols : sequence, optional
1093
1102
Columns to write
1103
+ col_aliases : sequence, default None
1104
+ Optional column aliases to be written instead of column names
1094
1105
header : boolean, default True
1095
1106
Write out column names
1096
1107
index : boolean, default True
@@ -1126,14 +1137,16 @@ def to_csv(self, path_or_buf, sep=",", na_rep='', cols=None,
1126
1137
else :
1127
1138
csvout = csv .writer (f , lineterminator = '\n ' , delimiter = sep )
1128
1139
self ._helper_csvexcel (csvout , na_rep = na_rep , cols = cols ,
1129
- header = header , index = index ,
1130
- index_label = index_label )
1140
+ col_aliases = col_aliases , header = header ,
1141
+ index = index , index_label = index_label )
1142
+
1131
1143
finally :
1132
1144
if close :
1133
1145
f .close ()
1134
1146
1135
1147
def to_excel (self , excel_writer , sheet_name = 'sheet1' , na_rep = '' ,
1136
- cols = None , header = True , index = True , index_label = None ):
1148
+ cols = None , col_aliases = None , header = True , index = True ,
1149
+ index_label = None ):
1137
1150
"""
1138
1151
Write DataFrame to a excel sheet
1139
1152
@@ -1173,8 +1186,8 @@ def to_excel(self, excel_writer, sheet_name='sheet1', na_rep='',
1173
1186
need_save = True
1174
1187
excel_writer .cur_sheet = sheet_name
1175
1188
self ._helper_csvexcel (excel_writer , na_rep = na_rep , cols = cols ,
1176
- header = header , index = index ,
1177
- index_label = index_label )
1189
+ col_aliases = col_aliases , header = header ,
1190
+ index = index , index_label = index_label )
1178
1191
if need_save :
1179
1192
excel_writer .save ()
1180
1193
0 commit comments