UnicodeEncodeError:'ascii'编解码器无法在位置0-9处编码字符:序数不在范围内(128)

时间:2018-11-05 11:06:50

标签: python python-2.7 pandas encoding

编写此代码时:

df['new'] = df.astype(str).apply(' '.join, axis=1)

这是导致此的原因

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)

df包含希腊字符。

在阅读了类似问题中的编码后,我无法将其应用于这种情况,并通过以下方式进行了处理:

import sys
reload(sys)
sys.setdefaultencoding('utf8')

虽然有效。每个人都不支持使用此功能。由于稍后可能会导致错误,因此我希望您针对这种情况查看您的建议。

数据是通过DataFrame.from_records https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.from_records.html导入的,因此它不能接受编码作为参数。

2 个答案:

答案 0 :(得分:0)

尝试简单地编码字符串:

df['new'] = df.astype(str).apply(' '.join, axis=1).encode("utf-8")

并将其添加到代码顶部

# -*- coding: utf-8 -*-

答案 1 :(得分:-2)

我发现原因是我们的远程服务器不支持中文。所以,我把所有的印刷内容都改成了英文。