问题描述
我只是碰碰到了一个错误,我从未拥有以下代码:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
data=pd.read_csv('Users\ergar\Desktop\ML-mini_bootcamp\W1')
我确认了几次,这是正确的。错误消息如下
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-52-f31adf5ab280> in <module>
----> 1 data=pd.read_csv('Users\ergar\Desktop\ML-mini_bootcamp\W1')
~\anaconda3\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,converters,true_values,false_values,skipinitialspace,skiprows,skipfooter,nrows,na_values,keep_default_na,na_filter,verbose,skip_blank_lines,parse_dates,infer_datetime_format,keep_date_col,date_parser,dayfirst,cache_dates,iterator,chunksize,compression,thousands,decimal,lineterminator,quotechar,quoting,doublequote,escapechar,comment,encoding,dialect,error_bad_lines,warn_bad_lines,delim_whitespace,low_memory,memory_map,float_precision)
674 )
675
--> 676 return _read(filepath_or_buffer,kwds)
677
678 parser_f.__name__ = name
~\anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer,kwds)
446
447 # Create the parser.
--> 448 parser = TextFileReader(fp_or_buf,**kwds)
449
450 if chunksize or iterator:
~\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self,f,**kwds)
878 self.options["has_index_names"] = kwds["has_index_names"]
879
--> 880 self._make_engine(self.engine)
881
882 def close(self):
~\anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self,engine)
1112 def _make_engine(self,engine="c"):
1113 if engine == "c":
-> 1114 self._engine = CParserWrapper(self.f,**self.options)
1115 else:
1116 if engine == "python":
~\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self,src,**kwds)
1889 kwds["usecols"] = self.usecols
1890
-> 1891 self._reader = parsers.TextReader(src,**kwds)
1892 self.unnamed_cols = self._reader.unnamed_cols
1893
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()
FileNotFoundError: [Errno 2] File Users\ergar\Desktop\ML-mini_bootcamp\W1 does not exist: 'Users\\ergar\\Desktop\\ML-mini_bootcamp\\W1'
为什么会这样?我该如何解决?预先感谢您抽出宝贵时间来澄清此问题。
解决方法
请尝试执行此操作,同时还要假设您的CSV文件的名称为W1
:
data = pd.read_csv(r'C:\Users\ergar\Desktop\ML-mini_bootcamp\W1')
,
您必须提及文件扩展名,例如,如果您的文件是.csv
,请使用:
data=pd.read_csv('Users\ergar\Desktop\ML-mini_bootcamp\W1.csv')
,
问题是您给Py解释器提供了相对路径。 相对路径是不是从文件系统根目录开始的路径-顾名思义,它们是相对于调用程序的位置(在本例中为笔记本)的位置进行解析的。
有两种方法可以解决此问题。
一种选择是使用绝对路径-对于Windows,从C:\或另一个合适的驱动器号开始-在您的情况下,将是
'C:\Users\ergar\Desktop\ML-mini_bootcamp\W1.csv'
选项二是将文件与笔记本放在同一文件夹中,然后使用相对路径:
pd.read_csv('W1.csv')
请注意,您可以创建子文件夹并以这种方式组织文件-例如,您可以创建数据集子文件夹,然后使用pd.read_csv(r'datasets\W1.csv')
另外,请记住将 r'path \ to \ file'(原始python字符串)用于Windows样式的路径,因为'\'是用于特殊字符的字符,例如新行和制表符,解析为非原始字符串时可能会被误解。