OSError:在Pandas

时间:2018-05-27 13:00:10

标签: python pandas csv dataframe

我已经查看过这个问题的所有类似帖子,但找不到任何解决方案......

到目前为止,Pandas读完所有我的CSV文件没有任何问题,但现在似乎有问题..

做的时候:

df = pd.read_csv(r'path to file', sep=';')

我明白了:

  

OSError Traceback(最近一次调用   最后)in()   ----> 1 df = pd.read_csv(r'path   Übersicht\ Input \ test \ test.csv',sep =';')

     

c:\ program files \ python36 \ lib \ site-packages \ pandas \ io \ parsers.py in   parser_f(filepath_or_buffer,sep,delimiter,header,names,index_col,   usecols,squeeze,prefix,mangle_dupe_cols,dtype,engine,converter,   true_values,false_values,skipinitialspace,skiprows,nrows,   na_values,keep_default_na,na_filter,verbose,skip_blank_lines,   parse_dates,infer_datetime_format,keep_date_col,date_parser,   dayfirst,迭代器,chunksize,压缩,千,十进制,   lineterminator,quotechar,quoting,escapechar,comment,encoding,   dialect,tupleize_cols,error_bad_lines,warn_bad_lines,skipfooter,   skip_footer,doublequote,delim_whitespace,as_recarray,compact_ints,   use_unsigned,low_memory,buffer_lines,memory_map,float_precision)       703 skip_blank_lines = skip_blank_lines)       704    - > 705返回_read(filepath_or_buffer,kwds)       706       707 parser_f。 name = name

     

c:\ program files \ python36 \ lib \ site-packages \ pandas \ io \ parsers.py in   _read(filepath_or_buffer,kwds)       443       444#创建解析器。    - > 445 parser = TextFileReader(filepath_or_buffer,** kwds)       446       447如果是chunksize或iterator:

     

c:\ program files \ python36 \ lib \ site-packages \ pandas \ io \ parsers.py in    init (自我,f,引擎,** kwds)       812 self.options ['has_index_names'] = kwds ['has_index_names']       813    - > 814 self._make_engine(self.engine)       815       816 def close(self):

     

c:\ program files \ python36 \ lib \ site-packages \ pandas \ io \ parsers.py in   _make_engine(self,engine)1043 def _make_engine(self,engine ='c'):1044 if engine =='c':    - > 1045 self._engine = CParserWrapper(self.f,** self.options)1046 else:1047 if engine =='python':

     

c:\ program files \ python36 \ lib \ site-packages \ pandas \ io \ parsers.py in    init (self,src,** kwds)1682 kwds ['allow_leading_cols'] = self.index_col不是假1683    - > 1684 self._reader = parsers.TextReader(src,** kwds)1685 1686 #XXX

     

pandas_libs \ parsers.pyx in   pandas._libs.parsers.TextReader。的 CINIT ()

     

pandas_libs \ parsers.pyx in   pandas._libs.parsers.TextReader._setup_parser_source()

     

OSError:从文件初始化失败

可以毫无问题地访问同一文件夹中属于XLS文件的其他文件。

当像这样使用Python库时:

import csv
file = csv.reader(open(r'pathtofile')) 

for row in file:
    print(row)
    break

df = pd.read_csv(file, sep=';')

正在加载文件并打印第一行,但是我得到了:

  

ValueError:无效的文件路径或缓冲区对象类型:

可能是因为我不能这样使用read_csv ......

任何帮助,最好是让第一个Pandas功能起作用?可悲的是,我不能分享CSV ...它不应该包含除德语之外的任何特殊字符..文件大小是10mb ...

15 个答案:

答案 0 :(得分:35)

import pandas as pd
pd.read_csv("your_file.txt", engine='python')

尝试一下。这完全对我有用。

答案 1 :(得分:21)

我遇到了类似的问题。原来,我下载的CSV完全没有权限。来自熊猫的错误​​消息并未指出这一点,因此很难调试。

检查文件是否具有读取权限

答案 2 :(得分:15)

我遇到了同样的问题,您应该检查您的权限。

chmod 644 file.csv之后,效果很好。

答案 3 :(得分:1)

我假设你的csv文件在同一个地方(root)。 如果您只想读取csv文件,并获得将在控制台中显示为文本的结果,请执行此操作

import csv
with open('your_file.csv', 'r') as csvFile:
    reader = csv.reader(csvFile)
    for row in reader:
        print(row)
csvFile.close()

注意:代码适用于Python 3,如果使用Python 2,则使用不带括号的打印语法。希望这会对你有所帮助

答案 4 :(得分:1)

当我尝试读取中文名称的csv文件时,在Win10操作系统下发现了相同的问题。将文件重命名为EN之后,再也没有问题了。也许您应该确保EN中完整的csv文件路径。

OS:Windows 10; python版本:3.6.5; Ipython的:7.0.1;熊猫:0.23.0

首先,使用时

import pandas as pd
answer_df = pd.read_csv('./答案.csv')

我的ipython笔记本引发'OSError:从文件初始化失败'。

然后我将文件重命名为answers.csv

import pandas as pd
answer_df = pd.read_csv('./answers.csv')

一切正常。

愿为您提供帮助。

答案 5 :(得分:1)

当我尝试使用日语文件名加载文件时出现相同的问题。

import pandas as pd
result = pd.read_csv('./result/けっこう.csv')

OSError: Initializing from file failed'

然后我添加了一个参数engine="python"

result = pd.read_csv('./result/けっこう.csv', engine="python")

对我有用。

答案 6 :(得分:0)

在Windows上遇到了同样的问题。 试图使用Dan Lee提供的解决方案,但行和列的结果却异常。我不确定这是否是由于我的csv文件中的日语字符引起的,但是通过明确定义编码格式为我解决了这个问题。

import pandas as pd
pd.read_csv("your_file.txt", engine='python', encoding = "utf-8-sig")

答案 7 :(得分:0)

pandas read_csv OSError:从文件初始化失败

我们可以尝试chmod 600 file.csv

答案 8 :(得分:0)

只需更改csv文件的渗透性,它将起作用

chmod 750 filename.csv(在命令行中)

!chmod 750 filename.csv(在jupyter笔记本中)

答案 9 :(得分:0)

我遇到了同样的问题,并且由于我刚刚安装了另一个软件包,所以我意识到问题可能是由于最近的安装可能会对pandas软件包进行了一些修改。 我试图删除熊猫并重新安装它,它和以前一样完美。

首先删除熊猫:

conda remove pandas

然后使用

重新安装它
conda install -c anaconda pandas 

答案 10 :(得分:0)

几个小时以来,我都面临着同样的问题,这次我尝试从下载数据集的地方找到zip文件作为参考-

df=pd.read_csv(r'C:\Users\ADMIN\news.csv')-Initializing from file failed df=pd.read_csv(r'C:\Users\ADMIN\news.zip')-Worked nicely!!

答案 11 :(得分:0)

就我而言,我输入的路径不正确。

我正在处理从Kaggle作为zip下载的数据集。下载的结构为:main.zip/subfiles.zip。我解压缩了主要文件,但解决方案是解压缩subfiles.zip,然后将所需文件放在subfiles.zip中。

所以路径应该是main / subfiles / wantedfile.csv,这是我的简单解决方法。

答案 12 :(得分:0)

如果您在 jupyter notebook 中遇到此问题,那么请您将 csv 文件上传到 notebook 中,然后检查您的问题是否已解决。我希望这会奏效。

答案 13 :(得分:-1)

这里有相同问题的不同解决方案。

我以前曾尝试在excel中加载文件,但是excel崩溃了,但必须保留一些文件锁,因为一旦我强制退出excel,它就会按预期加载。

答案 14 :(得分:-3)

问题的可能原因是熊猫的版本太低,将熊猫更新为1.0.1,可以正常工作。使用以下命令:

pip install -U pandas