首页 > 解决方案 > 将 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

文件写入正确,唯一的问题是名称。

标签: pandaspython-2.7csv

解决方案


在您的代码中,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)

推荐阅读