You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何循环遍历DataFrame批量处理CSV并按原文件名前缀导出?

批量处理CSV文件并保留原文件名前缀导出

完全可行!用循环来处理每个DataFrame并对应原文件名导出,绝对是这种批量任务最直观也最靠谱的实现方式——毕竟你已经把文件名和对应的DataFrame都准备好了,只要把它们一一配对起来循环处理就行,逻辑清晰还不容易出错。

我给你写个具体的代码示例,你可以直接套用到你的场景里:

import pandas as pd
import os

# 假设你已经通过代码获取了这两个列表
file_names = ["sales_202301.csv", "sales_202302.csv", "sales_202303.csv"]
dfs = [pd.read_csv(f) for f in file_names]

# 定义你的DataFrame处理函数(把你的实际处理逻辑放这里)
def process_dataframe(df):
    # 示例处理:计算新列、过滤数据等,替换成你的脚本
    df["total"] = df["quantity"] * df["price"]
    df = df[df["total"] > 100]
    return df

# 循环配对处理并导出
for file_name, raw_df in zip(file_names, dfs):
    # 执行处理逻辑
    processed_df = process_dataframe(raw_df)
    
    # 生成带原文件名前缀的导出文件名
    # 分离原文件名和扩展名,避免手动拼接出错
    base_name, ext = os.path.splitext(file_name)
    # 这里可以自定义导出文件名规则,比如原文件名+_processed+扩展名
    output_filename = f"{base_name}_processed{ext}"
    
    # 导出CSV,index=False避免写入多余的索引列
    processed_df.to_csv(output_filename, index=False)
    print(f"✅ 已完成:{output_filename}")

这里有几个小细节要注意:

  • 用zip(file_names, dfs)来同时遍历文件名和对应的DataFrame,确保两者严格一一对应,不会出现错位的情况
  • 用os.path.splitext()来处理文件名比手动切割字符串更安全,尤其是遇到带特殊字符或者多扩展名的文件时
  • 把处理逻辑封装成单独的函数,能让你的代码更整洁,后续修改处理规则也更方便
  • 导出时记得根据需求设置index=False,默认情况下Pandas会把DataFrame的索引写入CSV,大多数场景下我们不需要这个

内容的提问来源于stack exchange,提问作者p.liz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:30:01