pandas dataFrame to_excel 报错[ UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 7
2017-11-17 14:26
2791 查看
问题提出
python code
import pandas as pd df = pd.read_csv("text.csv", sep="\t") df.to_excel("test.xlsx")
error info
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 7: ordinal not in range(128)
解决办法
直接上 codeimport sys sys.setdefaultencoding('utf-8') import pandas as pd def csv2excel(fp): df = pd.read_csv(fp, sep="\t") cols = df.columns ## 转换每一列的编码 for e in cols: df[e] = df[e].map(lambda x: str(x).decode("utf8").encode("raw_unicode_escape").decode("raw_unicode_escape")) # 这里的 utf8 为 python 运行环境默认编码, 即 sys.getdefaultencoding() print e df.to_excel(fp.replace(".csv", ".xlsx")) print fp if __name__ == "__main__": fp = "test.csv" csv2excel(fp)
参考资料
Codec registry and base classespython encode\decode
How to fix: “UnicodeDecodeError: ‘ascii’ codec can’t decode byte”
PYTHON-进阶-编码处理小结
相关文章推荐
- python中尝试df.to_excel的时候'utf8' codec can't decode byte 0xb8 in position 0: invalid start byte
- 'ascii' codec can't decode byte 0xe7 in position 1: ordinal not in range(128)解决办法
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)错误解
- 【Python错误】 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)
- 'ascii' codec can't decode byte 0xe7 in position 12: ordinal not in range(128)的错误
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 34: ordinal not in range(128)
- 解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 108:
- 解决UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128
- 解决Python字符串处理出现错误UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe4 in position 108: ordinal not in range(128)
- pip报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xb1 in position 7: ordinal not in range(12
- Anaconda Unicode DecodeError: 'ascii' codec can't decode byte 0xc8 in position 1
- Python报错UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe0 in position 0: ordinal not in range
- 解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 108: ordinal not in ran
- robotframework ‘ascii’ codec can’t decode byte 0xe6 in position 977
- 解决UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
- python报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 4: ordinal not in range
- 使用pyinstaller生成可执行文件出现UnicodeDecodeError: 'ascii' codec can't decode byte 0xb3 in position 12
- 解决unicodedecodeerror ascii codec can’t decode byte 0xd7 in position 9 ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128) 解决