Skip to content

Commit fd99536

Browse files
committed
BUG: fix Unicode error in get_dummies for Python 2
1 parent 5f71404 commit fd99536

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

pandas/core/reshape/reshape.py

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# pylint: disable=E1101,E1103
22
# pylint: disable=W0703,W0622,W0613,W0201
3-
from pandas.compat import range, text_type, zip
3+
from pandas.compat import range, text_type, zip, u
44
from pandas import compat
55
from functools import partial
66
import itertools
@@ -923,11 +923,17 @@ def get_empty_Frame(data, sparse):
923923

924924
number_of_cols = len(levels)
925925

926+
py2_prefix_sep_is_unicode = isinstance(prefix_sep, text_type)
926927
if prefix is not None:
927-
dummy_strs = [u'{prefix}{sep}{level}' if isinstance(v, text_type)
928-
else '{prefix}{sep}{level}' for v in levels]
929-
dummy_cols = [dummy_str.format(prefix=prefix, sep=prefix_sep, level=v)
930-
for dummy_str, v in zip(dummy_strs, levels)]
928+
py2_prefix_is_unicode = isinstance(prefix, text_type)
929+
dummy_cols = []
930+
for level in levels:
931+
fstr = '{prefix}{sep}{level}'
932+
if py2_prefix_sep_is_unicode or py2_prefix_is_unicode or \
933+
isinstance(level, text_type):
934+
fstr = u(fstr)
935+
dummy_cols.append(fstr.format(
936+
prefix=prefix, sep=prefix_sep, level=level))
931937
else:
932938
dummy_cols = levels
933939

0 commit comments

Comments
 (0)