pandas - 将 pandas 数据框写入 csv 文件并在 for 循环中重命名
问题描述
我有一个脚本,可以将 SQL db 读取到 pandas 数据帧,然后将其连接在一起以在循环中形成一个数据帧。我需要将第二个数据框写入 csv 文件并从 ID 列表中重命名
我正在使用 pd.to_csv 来编写文件并使用 os.rename 来更改名称。
for X, df in d.iteritems():
newdf = pd.concat(d)
for X in newdf:
export_csv = newdf.to_csv (r'/Users/uni/Desktop/corrindex+id/X.csv', index = False, header = None)
for X in NAMES:
os.rename ('X.csv',X)
这是将数据帧连接在一起的代码。在第三个循环中,NAMES = 'rt35' 但将来这将是一个相似名称的列表。
我希望得到一个名为 rt35.csv 的文件。但是我要么得到 r.csv 要么 X.csv 和这个错误:
OSError: [Errno 2] No such file or directory
文件写入正确,唯一的问题是名称。
解决方案
在您的代码中,X 变量位于字符串内部,因此 python 将 X 视为字符而不是变量。你应该这样做:
export_csv = newdf.to_csv (r'/Users/uni/Desktop/corrindex+id/{}.csv'.format(X), index = False, header = None)
同样在这里 :
for X in NAMES:
os.rename (X +'.csv',X)
推荐阅读
- c - 为每个命令行参数创建一个字符串
- angular - 我们如何使用 tsconfig“别名路径”导入 @ngModule 和其他定义
- microsoft-graph-api - 如何计算 Microsoft Graph 中的未读消息
- spi - ATMEGA2561 WINC1500驱动实现SPI问题
- python - 一次使用拥抱脸的面具填充超过 1 个面具令牌的最佳方式
- java - Jenkins 使用 SBT 构建错误 - java.io.IOException: Cannot run program "javac" error=2, No such file or directory
- java - 启动新的 Activity 会导致应用重新启动
- java - Docker:播放框架应用程序以代码 0 退出
- python - 如何使用 Selenium - Python 从 Facebook Combobox 验证选项
- ansible - 如何在ansible jinja模板中使用变量内的变量