这只是我面临的一个简单问题。我正在尝试在jupyter笔记本中读取我的csv文件。它显示了一个错误,提示FileNotFoundError。我在任何地方都找不到适合的解决方案。请帮助我摆脱这个错误,并阅读csv文件。预先感谢
错误是
FileNotFoundError
Traceback (most recent call last)
<ipython-input-16-3b1f95fc5c0b> in <module>()
----> 1 dataset = pd.read_csv('D:\seminar\totaldata.csv')
2 dataset.head()
~\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,
nrows, na_values, keep_default_na, na_filter, verbose,
skip_blank_lines, parse_dates, infer_datetime_format,
keep_date_col, date_parser, dayfirst, iterator, chunksize,
compression, thousands, decimal, lineterminator, quotechar, quoting,
escapechar, comment, encoding, dialect, tupleize_cols,
error_bad_lines, warn_bad_lines, skipfooter, doublequote,
delim_whitespace, low_memory, memory_map, float_precision)
676 skip_blank_lines=skip_blank_lines)
677
--> 678 return _read(filepath_or_buffer, kwds)
679
680 parser_f.__name__ = name
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in
_read(filepath_or_buffer, kwds)
438
439 # Create the parser.
--> 440 parser = TextFileReader(filepath_or_buffer, **kwds)
441
442 if chunksize or iterator:
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f,
engine, **kwds)
785 self.options['has_index_names'] =
kwds['has_index_names']
786
--> 787 self._make_engine(self.engine)
788
789 def close(self):
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in
_make_engine(self, engine)
1012 def _make_engine(self, engine='c'):
1013 if engine == 'c':
-> 1014 self._engine = CParserWrapper(self.f,
**self.options)
1015 else:
1016 if engine == 'python':
~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self,
src, **kwds)
1706 kwds['usecols'] = self.usecols
1707
-> 1708 self._reader = parsers.TextReader(src, **kwds)
1709
1710 passed_names = self.names is None
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
pandas\_libs\parsers.pyx in
pandas._libs.parsers.TextReader._setup_parser_source()
FileNotFoundError:文件b'D:\ seminar \ totaldata.csv'不存在
dataset = pd.read_csv('D:\seminar\totaldata.csv')
dataset.head()
答案 0 :(得分:1)
从我在评论中收集的信息来看,似乎是一个编码问题。
您可以通过首先安装chardet
和以下代码来找到编码:
import chardet
rawdata = open('D:\\seminar\\totaldata.csv', 'rb').read()
result = chardet.detect(rawdata)
charenc = result['encoding']
print(charenc)
这将为您提供文件的编码。
一旦有了编码,就可以读为:
pd.read_csv('D:\\seminar\\totaldata.csv',encoding = 'encoding you found')
或
pd.read_csv(r'D:\seminar\totaldata.csv',encoding = 'encoding you found')
您将获得所有编码here的列表
答案 1 :(得分:0)
如果您尝试使用Jupyter Notebook读取本地计算机上的csv文件,并且如果尝试使用csv文件的相对路径来读取它,则可能会发现使用了完整的文件路径csv文件将修复错误,并允许熊猫读取文件。我有一个类似的问题,这对我有用。
答案 2 :(得分:0)
晚会。
如果您尝试使用Jupyter Notebook读取本地计算机上的csv文件,并且如果您尝试使用csv文件的相对路径读取它,则它将随着Current Working更改相对路径。目录+您的文件参数[FileName]
因为Jupyter Notebook如果未使用完整路径[绝对路径]之类的,则会自动附加默认路径
(注意:假设Jupyter的默认路径为
'C:\ Users \ ersar \ Desktop'#要获取当前工作目录,请先使用
import os
os.getcwd()
现在假设您提供作为
companies = pd.read_csv("companies.txt", sep="\t", encoding = "ISO-8859-1")
但是您的文件位于“ C:\ Users \ ersar \ Desktop \ Project \ Company”
然后它将在您当前的工作目录(cwd ='C:\ Users \ ersar \ Desktop')中搜索该文件,因此找不到该文件。
所以总是给全路径而不是相对路径
喜欢
companies = pd.read_csv("C:\\Users\\ersar\\Desktop\\Project\\Company\\companies.txt", sep="\t", encoding = "ISO-8859-1")
根据熊猫文档: filepath_or_bufferstr,路径对象或类似文件的对象 任何有效的字符串路径都是可以接受的。该字符串可以是URL。有效的URL方案包括http,ftp,s3,gs和file。对于文件URL,需要一个主机。本地文件可以是:file://localhost/path/to/table.csv。 如果要传递路径对象,pandas可以接受任何os.PathLike。 对于类似文件的对象,我们指的是具有read()方法的对象,例如文件处理程序(例如,通过内置的打开函数)或StringIO。
答案 3 :(得分:0)
从文件夹顶部复制完整路径位置并将其粘贴到pd.read_csv(.....
)
这对我有用。
答案 4 :(得分:-1)
dataset = pd.read_csv('D:\seminar\\totaldata.csv')
dataset.head()
使用反斜杠在字符串中转义特殊字符(此处\ t是制表符的特殊字符)会有所帮助。