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

如何在Python Pandas循环函数中读写修改CSV并生成独立DataFrame

在Python Pandas中生成多个独立DataFrame的解决方案

问题描述

需要实现一个Python Pandas函数,完成以下操作:

  • 读取指定路径下的5个CSV文件
  • 对每个CSV执行聚合操作(示例为删除COL1列)
  • 将每个修改后的结果保存为独立的DataFrame

现有代码每次循环都会覆盖df变量,最终仅返回一个DataFrame,需修改代码实现需求。原代码如下:

import os
import pandas as pd

def xx():
    #1. 读取5个csv 
    for el in [col for col in os.listdir("mypath") if col.endswith(".csv")]:
        df = pd.read_csv(f"path/{el}")
        
        #2. 执行聚合操作
        df = df.drop("COL1", axis=1)

        #3. 将每个修改后的csv保存为独立的DataFrames
         ?????

解决方案

方法1:返回存储DataFrame的字典(推荐)

用字典存储处理后的DataFrame,以CSV文件名(去掉后缀)作为键,方便后续按名称调用:

import os
import pandas as pd

def process_csvs():
    df_dict = {}
    # 遍历指定路径下的所有CSV文件
    for filename in [f for f in os.listdir("mypath") if f.endswith(".csv")]:
        # 读取CSV文件
        df = pd.read_csv(f"mypath/{filename}")
        # 执行处理操作(删除COL1列)
        df_processed = df.drop("COL1", axis=1)
        # 以无后缀的文件名作为键,存入字典
        df_key = filename.replace(".csv", "")
        df_dict[df_key] = df_processed
    # 返回包含所有处理后DataFrame的字典
    return df_dict

# 使用示例
processed_dfs = process_csvs()
# 调用指定文件对应的DataFrame,比如处理后的data.csv对应:
# processed_dfs["data"]

方法2:返回存储DataFrame的列表

如果仅需要按读取顺序获取结果,可使用列表存储:

import os
import pandas as pd

def process_csvs():
    df_list = []
    for filename in [f for f in os.listdir("mypath") if f.endswith(".csv")]:
        df = pd.read_csv(f"mypath/{filename}")
        df_processed = df.drop("COL1", axis=1)
        df_list.append(df_processed)
    return df_list

# 使用示例
processed_dfs = process_csvs()
# 按索引获取对应DataFrame,比如第一个读取并处理的文件:
# processed_dfs[0]

注意事项

  • 不建议动态创建df1、df2这类独立变量,会导致代码难以维护,不符合Python编码规范。
  • 确保路径一致性:代码中mypath需与实际文件路径匹配,避免出现文件找不到的错误。

内容的提问来源于stack exchange,提问作者dingaro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:40:41