23
23
import numpy .ma as ma
24
24
25
25
from pandas .core .common import (isnull , notnull , PandasError , _try_sort ,
26
- _default_index , _stringify )
26
+ _default_index , _stringify , csv_encode )
27
27
from pandas .core .daterange import DateRange
28
28
from pandas .core .generic import NDFrame
29
29
from pandas .core .index import Index , MultiIndex , NULL_INDEX , _ensure_index
@@ -890,9 +890,13 @@ def to_csv(self, path, sep=",", na_rep='', cols=None, header=True,
890
890
elif not isinstance (index_label , (list , tuple , np .ndarray )):
891
891
# given a string for a DF with Index
892
892
index_label = [index_label ]
893
- csvout .writerow (list (index_label ) + list (cols ))
893
+
894
+ encoded_labels = [csv_encode (val ) for val in index_label ]
895
+ encoded_cols = [csv_encode (val ) for val in cols ]
896
+ csvout .writerow (encoded_labels + encoded_cols )
894
897
else :
895
- csvout .writerow (cols )
898
+ encoded_cols = [csv_encode (val ) for val in cols ]
899
+ csvout .writerow (encoded_cols )
896
900
897
901
nlevels = getattr (self .index , 'nlevels' , 1 )
898
902
for idx in self .index :
@@ -909,7 +913,8 @@ def to_csv(self, path, sep=",", na_rep='', cols=None, header=True,
909
913
910
914
row_fields .append (val )
911
915
912
- csvout .writerow (row_fields )
916
+ encoded_rows = [csv_encode (val ) for val in row_fields ]
917
+ csvout .writerow (encoded_rows )
913
918
914
919
f .close ()
915
920
0 commit comments