python - 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']
将列出文件。
解决方案
我认为问题在于您正在运行 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:运行选择。 ..”它在您的默认终端中执行,没有这个问题。)
推荐阅读
- django - Django 从 django.core.wsgi 导入 get_wsgi_application
- javascript - 如何使用动态列号重新初始化 DataTable?
- scala - 执行上下文未关闭
- react-native - Button 中的文本不显示 ios 中的文本(本机基础)
- ajax - 使用钩子在按钮 onClick 事件时反应 ajax 调用
- visual-studio-2019 - 我怎么能关掉这个?视觉工作室 2019
- php - 为什么我使用 PHP cURL 的 GET 请求返回一个空白页?
- javascript - JS Visibility API - 切换到另一个应用程序窗口
- windows - 适用于 Windows 的 Docker。无法连接到 nginx
- node.js - docker 容器中的 Npm 安装找不到我的自定义注册表