Python pandas 保存多个不同名称的 CSV

Posted

技术标签:

【中文标题】Python pandas 保存多个不同名称的 CSV【英文标题】:Python pandas save multiple CSV with different names 【发布时间】:2019-05-23 14:47:00 【问题描述】:

我正在使用 pandas 读取多个文件,并且需要使用原始文件名_更正的文件名保存每个文件。如何使用原始文件名 + 前缀或数字重命名输出文件?

import pandas as pd
import glob
import os

#Read all files in using pandas
path = r'J:\Temp\\' 
all_files = glob.glob(path + "/*.97o")

for filename in all_files:
   df = pd.read_csv (filename)
   df = df.replace(to_replace ='1997     7    23 ', value = '2019     5    23 ', regex = True)
   df = df.replace(to_replace ='97  7 23', value = '19  5 23', regex = True)
   df.to_csv('J:\Temp\94512040_corrected.97o', index=False)

应该调用输出文件:filename_corrected.97o

【问题讨论】:

镜头只需要附加到每个循环的文件名上 你可以使用df.to_csv('J:\Temp\'+filename+'_corrected.97o', index=False) @Bugs404 干扰,但你的答案不起作用 Rename multiple files in Python的可能重复 【参考方案1】:

您可以使用基于旧名称的格式字符串创建新文件名:

import pandas as pd
import glob
import os

#Read all files in using pandas
path = r'J:\Temp\\' 
all_files = glob.glob(path + "/*.97o")

for filename in all_files:

   df = pd.read_csv(filename)
   df = df.replace(to_replace ='1997     7    23 ', value = '2019     5    23 ', regex = True)
   df = df.replace(to_replace ='97  7 23', value = '19  5 23', regex = True)
   fileBaseName = os.path.basename(filename).split('.')[0]
   newFilename = '_corrected.97o'.format(path, fileBaseName)
   df.to_csv(newFilename, index=False)

【讨论】:

您好,感谢您的回答,但似乎弄乱了路径 - 出现“没有这样的文件或目录”错误 - 代码似乎将额外的 \\ 添加到文件路径中 这是我得到的: FileNotFoundError: [Errno 2] 没有这样的文件或目录:“J:\\Temp\\Michael\\Python\\Rinex 日期错误\\J:\\Temp\\Michael\\Python \\Rinex 日期错误\\'+文件名+_corrected.97o_corrected.97o"

以上是关于Python pandas 保存多个不同名称的 CSV的主要内容,如果未能解决你的问题,请参考以下文章

以长格式保存具有不同级别名称的多索引列 Pandas 为 excel 格式

Python 数据分析 —— Pandas ②

Pandas:根据不同类型的多个条件更改值

处理来自不同函数的多个返回数据集 python pandas

如何在python中保存多个xml文件

行中的 Python/Pandas 数据帧时间数据(按名称分组)