解决pandas read_csv 读取中文列标题文件报错的问题
作者:wshzd 发布时间:2023-04-16 06:54:37
标签:pandas,read,csv
从windows操作系统本地读取csv文件报错
data = pd.read_csv(path)
Traceback (most recent call last):
File "C:/Users/arron/PycharmProjects/ML/ML/test.py", line 45, in <module>
data = pd.read_csv(path)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 655, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 405, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 762, in __init__
self._make_engine(self.engine)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 966, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1582, in __init__
self._reader = parsers.TextReader(src, **kwds)
File "pandas\_libs\parsers.pyx", line 394, in pandas._libs.parsers.TextReader.__cinit__ (pandas\_libs\parsers.c:4209)
File "pandas\_libs\parsers.pyx", line 712, in pandas._libs.parsers.TextReader._setup_parser_source (pandas\_libs\parsers.c:8895)
OSError: Initializing from file failed
上述报错的解决方案是
pwd = os.getcwd()
os.chdir(os.path.dirname(path))
data = pd.read_csv(os.path.basename(path))
os.chdir(pwd)
此时又报如下错误:
Traceback (most recent call last):
File "C:/Users/arron/PycharmProjects/ML/ML/test.py", line 47, in <module>
data = pd.read_csv(os.path.basename(path))
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 655, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 405, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 762, in __init__
self._make_engine(self.engine)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 966, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "C:\Users\arron\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1582, in __init__
self._reader = parsers.TextReader(src, **kwds)
File "pandas\_libs\parsers.pyx", line 562, in pandas._libs.parsers.TextReader.__cinit__ (pandas\_libs\parsers.c:6175)
File "pandas\_libs\parsers.pyx", line 781, in pandas._libs.parsers.TextReader._get_header (pandas\_libs\parsers.c:9691)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 0: invalid continuation byte
最终解决方案是:
pwd = os.getcwd()
os.chdir(os.path.dirname(path))
data = pd.read_csv(os.path.basename(path),encoding='gbk')
os.chdir(pwd)
来源:https://blog.csdn.net/wshzd/article/details/73739280


猜你喜欢
- 因为python打包的时候需要用到ico图片格式,网上看好的图片又没有ico,于是自己寻找了一下python转换图片格式的方法,彻底解决这个
- 常见的绑定事件有直接绑定在页面元素中比如<div id="wrap" onclick="a();&quo
- 在任何编辑器中,获取光标位置都是非常重要的,很多人可能认为较难,其实只要处理好浏览器的兼容,还是比较容易实现的。下面我们一起来看看如何获取到
- 第一次使用csdn写文章,写得不好还请见谅。(运行环境:python3.6)下了一个带密码的压缩包文件,作为一个刚学python的新手,想着
- 说明当我们需要用脚本实现,远程登录或者远程操作的时候,都要去解决如何自动输入密码的问题,一般来说有3种实现方式:1).配置公钥私钥2).使用
- 比如下面的例子:class Book(object): def __setattr__(self, na
- 在 go 的标准库中,提供了 sync.Cond 这个并发原语,让我们可以实现多个 goroutine 等待某一条件满足之后再继续执行。 它
- 什么是MD5?MD5信息摘要算法(英语:MD5 Message-Digest Agorithm),一种被广泛使用的密码散列函数,可以产生出一
- 本文实例为大家分享了PyQt5实现简单数据标注工具的具体代码,分类用,供大家参考,具体内容如下第一个最大的图片是当前要标注的类别,接下来的两
- 模块 定义计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里。在python
- 作用装饰器可以用于用于装饰一个函数或方法,使得在不修改原函数、方法代码的前提下,为方法添加前置或后置操作;例如突然想要计算一下各个函数的执行
- 简介主要介绍事件总线的定义和编写方法和Vue是如何实现消息的订阅与发布的。事件总线事件总线是组件间通信的一种方式,适用于任意组件间的通信,比
- 本文实例讲述了MySQL自定义函数用法。分享给大家供大家参考,具体如下:先来一个简单的,创建一个函数将'2009-06-23 00:
- 每天都要记得健康打卡尊敬的老师,我忘了这次的健康打卡,反思的时候我想了很多东西,反省了很多事情,自己也很懊悔,触犯了学校的规定,深刻认识到自
- 本文实例讲述了Python实现爬取马云的微博功能。分享给大家供大家参考,具体如下:分析请求我们打开 Ajax 的 XHR 过滤器,然后一直滑
- --重命名表 rename table t_softwareport to software_port; --建立外键 alter tabl
- 前言在Vue组件库开发过程中,Vue组件之间的通信一直是一个重要的话题,虽然官方推出的 Vuex 状态管理方案可以很好的解决组件之间的通信问
- 一、使用python内置commands模块执行shellcommands对Python的os.popen()进行了封装,使用SHELL命令
- Python之绘图和可视化1. 启用matplotlib最常用的Pylab模式的IPython(IPython --pylab)2. mat
- 1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 2、 开始->程序->Oracle - OraHome81-