Панды не могут найти соответствующий файл
Я пытаюсь попробовать t-тест в Python, используя модуль Pandas. Тем не менее, продолжает возникать та же ошибка, в которой мой целевой файл не может быть найден. В этом случае целевой файл brain_size.csv
где разделителями являются точки с запятой. Значения, которые оставлены пустыми, представлены точкой.
Вот что я ввел:
import pandas as pd
data = pd.read_csv('This PC\Desktop\brain_size.csv', sep=';', na_values='.')
Вот сообщение об ошибке. Это длинная строка
File "C:\Users\Tina Gnali\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 562, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\Users\Tina Gnali\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 315, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "C:\Users\Tina Gnali\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 645, in __init__
self._make_engine(self.engine)
File "C:\Users\Tina Gnali\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 799, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "C:\Users\Tina Gnali\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1213, in __init__
self._reader = _parser.TextReader(src, **kwds)
File "pandas\parser.pyx", line 358, in pandas.parser.TextReader.__cinit__ (pandas\parser.c:3427)
File "pandas\parser.pyx", line 628, in pandas.parser.TextReader._setup_parser_source (pandas\parser.c:6861)
OSError: File b'This PC\\Desktop\x08rain_size.csv' does not exist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
Я хочу спросить:
Что я делаю неправильно? Почему я не могу получить целевой файл?
Почему моя ошибка вызывает такое длинное сообщение об ошибке?
Что делает модуль "парсер"?
3 ответа
Проблема в использовании обратной косой черты "\". Вы должны избегать этого. Обратная косая черта зарезервирована для того, что называется escape-символами, например, новая строка обозначается символом "\n" и прочее. Либо используйте двойную обратную косую черту "\\", либо просто прямую косую черту "/", либо необработанные литералы в вашем read_csv():
"C:\\Users\\blabla\\"
или же
"C:/Users/blabla/"
или же
r"C:\Users\blabla\"
Относительно того, как идентифицировать ошибку, ищите строку "error" в сообщении об ошибке. Это здесь:
OSError: File b'This PC\\Desktop\x08rain_size.csv' does not exist
Это говорит о том, что Python ищет файл с именем "x08rain_size.csv", и, очевидно, у вас нет такого файла. Но что такое x08rain? Может ли быть так, что b заменяется на x08, когда перед ним ставится обратная косая черта? Давайте спросим это на Python:
In [247]: '\b'
Out[247]: '\x08'
Вот и мы!
Иногда вы не сможете использовать
"C:\\Users\\blabla\\" or "C:/Users/blabla/"
Решение 1. Другой вариант может быть таким: Откройте приглашение Anaconda или cmd, затем измените путь. Предположим, что вы находитесь на диске "c", а ваша папка находится на диске e. Поэтому после открытия cmd напишите "e:" и нажмите ввод. Тогда команда покажет вамE:\>
"Теперь ты должен написать"cd E:\Users\blabla\desired_folder
"После запуска, вы должны написать"jupyter notebook
"и запустите его. Он создаст и откроет новый блокнот в той же папке, в которой находится ваш файл.
Решение 2. Другое простое решение, после открытия jupyther notebook> file>
используйте значок папки и выберите правильную папку.
Может быть, sep отличается, это может быть "," попробуйте это, и если он все еще не работает, попробуйте удалить значения sep и na и попытаться сохранить файл в том же каталоге, где находится программа, или указать фактический путь