Я использую jupyter notebook pandas to_csv не выводит фрейм данных в файл.
Я попытался использовать to_csv для вывода фрейма данных в файл csv, установив рабочий каталог или указав каталог, и он не создал никакого файла. Код запустился и не выдал никаких сообщений об ошибках, но когда я открыл папку, такого файла не было.
Я попробовал другой ввод-вывод, и он показал, что результат был выведен.
from io import StringIO
output = StringIO()
a.to_csv(output)
print(output.getvalue())
Я получил следующий результат:
,a
0,1
1,2
2,3
но опять же to_csv('filepath/filename.csv') не выводит ни одного файла.
PS: я могу прочитать любой файл в любом каталоге, используя read_csv ().
Если я сохраню файл df.to_csv('testfile.csv'), то сделаю pd.read_csv('testfile.csv')
Я могу прочитать файл, но не вижу его в каталоге.
Кроме того, выполнение [x for x in os.listdir() if x == 'testfile.csv'] отобразит файл.
вы используете mac, windows, linux и т. д.?
Я использую windows. Я пробовал все возможные способы для to_csv. Но теперь файл обнаружился в папке.
Вы пробовали абсолютный путь? Текущий каталог может отличаться от того, что вы думаете.
Я пробовал 1. абсолютный каталог, 2. использовать os.chdir () для указания каталога, 3. просто использовать to_csv ('filename.csv'). это не сработало ни в коем случае.
@LiAi как насчет того, чтобы попробовать df.to_csv(os.getcwd()+'\\file.csv') или df.to_csv(r'some\file\path\file.csv'), вы просматриваете кешированную версию сетевого драйвера?
Вы обновили выходной каталог?
@Chris просто попробовал, и оба они не работали. Так странно - никогда раньше такого не испытывал.
@LiAi, если вы не получаете сообщение об ошибке, попробуйте прочитать сохраненный файл (даже если вы не видите его в каталоге), чтобы узнать, существует ли он: сначала df.to_csv('testfile.csv'), затем pd.read_csv('testfile.csv')
@Chris df.to_csv ('testfile.csv'), тогда pd.read_csv ('testfile.csv') работает. Я могу прочитать файл, но не вижу его.
@LiAi отображает ли [x for x in os.listdir() if x == 'testfile.csv'] файл в каталоге? Кроме того, поскольку вы можете прочитать файл, это не похоже на проблемы с python / pandas. Я могу сказать вам клише: "Вы пытались выключить и снова включить"?
[x вместо x в os.listdir (), если x == 'testfile.csv'] действительно перечислил имя файла. Я попытался перезагрузить компьютер, но он все равно не появился. собирается дать ему вторую попытку. вторая попытка все еще не показала файл.
@LiAi хммм, попробуйте открыть панель управления и перейдите к Appearance and Personalization, затем в File Explorer Options нажмите Show hidden files and folders Проверьте Show hidden files, folders, and drives и убедитесь, что Hide extensions for known file types не отмечен, затем примените к папкам
@ Крис попробовал то, что вы предложили, но все равно не повезло. Я все еще могу прочитать файл. Очень странно.
@LiAi, это действительно необычно. Хотел бы я помочь, но это все, о чем я могу думать. Надеюсь, кто-нибудь еще вам поможет. Удачи вам.
Я использовал блокнот jupyter от Anaconda. Пытался использовать окна терминала и паука, чтобы сделать то же самое, и они оба работали! поэтому я попытаюсь переустановить Anaconda.
Теперь это выглядит очень странно ... Я переустановил Anaconda, но файлы в папке все еще не отображаются. НО, когда я открыл Jupyterlab (не jupyter notebook) из Anaconda, я увидел все файлы, которые я сохранил .... Что случилось ??
Проб решил для себя. См. Anwser user12352611.






Возможно, у вас нет доступа к выходной папке.
Сначала попробуйте текущий каталог, например to_csv('tmp.csv').
Затем проверьте право собственности на каталог с помощью ls -l.
Я попробовал ls -l, но он не показал нужный файл.
Вы должны использовать эту команду в верхней папке, вы должны проверить, есть ли у вас право записи в папке.
вы, вероятно, забыли добавить имя файла после пути, поэтому он будет называть ваш файл последним символом вашего пути, который вы можете увидеть на домашней странице jupyter.
должно быть: df.to_csv ('путь / имя_файла.csv', ....)
скорее, чем df.to_csv ('путь.csv' ......)
Я думаю, проблема в том, что вы используете Jupyter Notebook, поэтому «текущий каталог» для ноутбука, вероятно, находится где-то в «C: \ Users \ user_name \ AppData ...».
Попробуйте запустить os.getcwd() на своем ноутбуке. Вероятно, это будет не та папка, в которой сохранен файл *.ipynb. Итак, как @Chris предложил в комментариях, это:
df.to_csv(os.getcwd()+'\\file.csv')
... отправит ваш csv в папку AppData.
Вы можете либо изменить рабочий каталог для записной книжки Jupyter, либо использовать полностью указанное имя файла, например:
df.to_csv('C:\\Users\\<user_name>\\Desktop\\file.csv')
(Примечание: это также сбило меня с толку в VS-Code при использовании интерактивного выполнения iPython, которое происходит, когда вы нажимаете shift + enter. Интересно, что в VS-Code, если вы используете ctrl + shift + p и выбираете «Python: Run selection. .. "он выполняется в вашем терминале по умолчанию, в котором нет этой проблемы.)
У меня была такая же проблема с использованием Spyder. В моем случае это было вызвано инструментом интернет-безопасности (COMODO), который я использовал, который каким-то образом запускал spyder в песочнице или около того и не позволял ему писать в "нормальные" каталоги. Вместо этого он сохранил результат в папке с именем C: VTRoot \ HarddiskVolume2 \ users \. Вы можете попытаться сохранить файл с совершенно уникальным именем a.to_csv ('very_unique_filename.csv'), а затем выполнить поиск в проводнике Windows по этому имени файла, чтобы найти папку, в которой он хранится. Если причина в каком-то подобном инструменте, изменение настроек может помочь.
На самом деле я только что нашел решение, которое вы рекомендовали - оказалось, что приложение jupyter notebook находится в C: VTRoot \ HarddiskVolume2 \ users \, и все файлы там. Если это файл * .py, мы можем разблокировать его в conmodo, а затем он запишет в понравившуюся папку. Однако я не нашел способа разблокировать приложение для ноутбука jupyter.
Это даст вам нормальный документ, даже если вы использовали to_csv:
df.to_csv(**'df',** index = False)
Обязательно используйте df.csv, это обеспечит выходной файл CSV.
df.to_csv(**'df.csv'**, index = False)
в моем случае файлы были сохранены в корневой папке моих приложений (как и ожидалось).
но Мне нужно было перезапустить Jupyter, хотя у меня была включена автоматическая перезагрузка:
%load_ext autoreload
%autoreload 2
это означает, что перезагрузка работает для большинства изменений, но это не сработало, когда я добавил df.to_csv, пока не перезапустил блокнот jupyter
попробовать
to_csv('file.csv')и просто использовать относительный путь? он должен появиться в вашей папке