首页 > 解决方案 > pandas to_csv 不输出文件

问题描述

我正在使用 jupyter notebook pandasto_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')

我可以读取文件,但在目录中看不到它。

此外,doing[x for x in os.listdir() if x == 'testfile.csv']将列出文件。

标签: pythonpandas

解决方案


我认为问题在于您正在运行 Jupyter Notebook,因此笔记本的“当前目录”可能位于“C:\Users\user_name\AppData ...”中的某个位置。

尝试os.getcwd()在笔记本中自行运行。它可能与*.ipynb保存文件的文件夹不同。因此,正如@Chris 在评论中建议的那样:

df.to_csv(os.getcwd()+'\\file.csv')

... 会将您的 csv 发送到 AppData 文件夹中。

您可以更改 Jupyter notebook 的工作目录,也可以使用完全指定的文件名,例如:

df.to_csv('C:\\Users\\<user_name>\\Desktop\\file.csv')

(注意:这也让我在 VS-Code 中使用了按 shift+enter 时发生的交互式 iPython 执行。有趣的是,在 VS-Code 中,如果您使用 ctrl+shift+p 并选择“Python:运行选择。 ..”它在您的默认终端中执行,没有这个问题。)


推荐阅读