熊猫to_csv不输出文件

时间:2019-01-17 01:27:19

标签: python pandas

我正在使用jupyter笔记本熊猫to_csv不会将数据帧输出到文件。

我试图通过设置工作目录或指定目录使用to_csv将数据帧输出到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']将列出文件。

6 个答案:

答案 0 :(得分:2)

我认为问题在于您正在运行Jupyter笔记本,因此笔记本的“当前目录”可能在“ 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')

(注意:使用Shift + Enter时发生的交互式iPython执行,这也会使我在VS-Code中绊倒。有趣的是,在VS-Code中,如果使用ctrl + shift + p并选择“ Python:运行选择...”,它将在您的默认终端中执行,而不会出现此问题。)

答案 1 :(得分:2)

即使您使用过 to_csv,这也会为您提供一个普通文档:

df.to_csv(**'df',** index = False)

确保使用“df.csv”,这将确保输出 CSV 文件。

df.to_csv(**'df.csv'**, index = False)

答案 2 :(得分:1)

您可能忘记了在路径后添加文件名,因此它将文件命名为路径的最后一个字符,您可以在jupyter的主页上看到它。

应为: df.to_csv('path / filename.csv',....)

而不是 df.to_csv('path.csv'......)

答案 3 :(得分:1)

我在使用spyder时遇到了同样的问题。在我的情况下,这是由我使用的Internet安全工具(COMODO)引起的,该工具以某种方式在沙盒中执行了间谍程序,并且不允许其写入“正常”目录。而是将结果保存到名为C:VTRoot \ HarddiskVolume2 \ users \的文件夹中。您可以尝试保存一个名称非常独特的文件a.to_csv('very_unique_filename.csv'),然后在Windows资源管理器中搜索该文件名,以找到该文件所在的文件夹。如果原因是类似这样的工具,更改其设置可能会有所帮助。

答案 4 :(得分:0)

也许您无权访问输出文件夹。

首先尝试使用当前目录,例如to_csv('tmp.csv')

然后使用ls -l检查目录的所有权。

答案 5 :(得分:0)

就我而言,文件已保存到我的应用程序根文件夹中(如预期)。

但是即使我启用了自动重新加载,我也需要重新启动 Jupyter:

  %load_ext autoreload

  %autoreload 2

意思是,重新加载适用于大多数更改,但是当我添加 df.to_csv 时它不起作用,直到重新启动 jupyter notebook