python pandas.dataframe读取unicode编码的txt文件出现的问题

发布于 2022-09-06 23:46:34 字数 1371 浏览 20 评论 0

我这里拥有一个利用unicode编码的txt文件,

clipboard.png

当我采用下列代码读取文件时(代码中省略了部分文件路径)

with open('STK_MKT_ValuationMetrics.txt','r') as f:
    pettmInfo = pd.read_table(f)

这种代码读取时产生了报错:

'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

然后我分别采用了
1.with open('STK_MKT_ValuationMetrics.txt','rb') as f:
报错:'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
2.with open('STK_MKT_ValuationMetrics.txt','rb',encoding='utf-8') as f:
报错:binary mode doesn't take an encoding argument
3.with open('STK_MKT_ValuationMetrics.txt','r',encoding='utf-8') as f:
报错:'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
无一例外都失败了,可这都是根据报错一步一步百度搜来的做法。。。。

然后我就把txt文档另存为utf-8编码的,再次读取:

with open('STK_MKT_ValuationMetrics.txt','r',encoding='utf-8') as f:
    pettmInfo = pd.read_table(f)

这时没有报错,但是第一列有些地方以0开头缺都被省略了,如000006变成了6,这并不是我想要的结果,如下图:

clipboard.png

请问这该如何解决呢?如果解答能只对原文件进行读取不改变编码格式我会觉得更好,实在不行的话我也就只能手动转化为utf-8读取了,那么这些省略的0我该如何处理呢?谢谢解答!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

戴着白色围巾的女孩 2022-09-13 23:46:34
pd.read_table('filename', sep='分割符', encoding="utf-8", dtype={'列名1': np.列类型1, '列名2': np.列类型2})
遗弃M 2022-09-13 23:46:34

知乎上有人碰到同样的问题,答案如下:

#!/usr/bin/python3
# -*- coding:utf8 -*-
import codecs

open("filename",'w',encoding="utf8")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文