我使用的是jupyter notebook pandas to_csv
,它不会将 Dataframe 输出到文件中。
我尝试使用to_csv
通过设置工作目录或指定目录来将 Dataframe 输出到csv文件,但它没有创建任何文件。代码运行并没有产生任何错误信息,但当我打开文件夹时,没有这样的文件。
我尝试了另一个IO,它确实显示结果已输出。
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']
将列出该文件。
7条答案
按热度按时间pdsfdshx1#
我认为问题是你正在运行一个Jupyter Notebook,所以笔记本的“当前目录”可能在“C:\Users\user_name\AppData...”中。
试着在你的笔记本上运行
os.getcwd()
。它可能和保存*.ipynb
文件的文件夹不同。所以就像@Chris在评论中建议的那样:df.to_csv(os.getcwd()+'\\file.csv')
...会将您的csv发送到AppData文件夹中。
你可以使用change the working directory for the Jupyter notebook,或者你可以使用一个完全指定的文件名,如:
df.to_csv('C:\\Users\\<user_name>\\Desktop\\file.csv')
(Note:这也让我在VS-Code中使用交互式iPython执行时遇到了问题,当你按shift+enter时会发生这种情况。有趣的是,在VS-Code中,如果你使用ctrl+shift+p并选择“Python:运行选择......”它在默认终端中执行,而默认终端没有这个问题。)
o2rvlv0m2#
你可能忘了在你的路径后面加上文件名,所以它会把你的文件命名为你的路径的最后一个字符,你可以在jupyter的主页上看到。
应该是:df.to_csv('path/filename. csv',....)
而不是df.to_csv(“路径. csv ")
2uluyalo3#
我在使用spyder时也遇到了同样的问题。在我的情况下,这是由我使用的互联网安全工具(COMODO)引起的,它在沙箱中执行spyder,不允许它写入“正常”目录。相反,它将结果保存到名为C:VTRoot\HarddiskVolume2\users\的文件夹中。您可以尝试保存一个具有非常独特名称的文件a.to_csv('very_unique_filename. csv '),然后在Windows资源管理器中搜索该文件名,以找到它存储的文件夹。如果原因是这样的工具,更改它的设置可能会有所帮助。
lymgl2op4#
可能您没有访问输出文件夹的权限。
首先尝试当前目录,如
to_csv('tmp.csv')
。然后使用
ls -l
检查目录的所有权。bvjxkvbb5#
这将给予你一个正常的文档,即使你已经使用了
to_csv
:确保使用'df.csv',这将确保输出CSV文件。
qcuzuvrc6#
在我的情况下,文件被保存到我的应用程序根文件夹(如预期的那样)。
但是我需要重新启动Jupyter,即使我启用了自动重新加载:
也就是说,reload对大多数更改都有效,但当我添加www.example.com _csv时,它不起作用df.to,直到重新启动jupyter notebook
r8xiu3jd7#
您可能出于某种原因使用PyCharm,当您创建新的CSV时,它不会在树中显示创建的文件,尽管如此,它已经创建,您应该在终端中检查文件。或者简单地关闭并重新打开PyCharm。