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

Python Pandas:如何批量对多个相似DataFrame执行相同操作?

批量处理同构DataFrame的Pandas风格方案

这种批量处理结构一致的DataFrame的需求非常普遍,下面几个方案既符合Pandas的设计理念,又能让你的代码更整洁、可维护:

1. 用字典/列表统一管理,批量推导处理

首先把分散的DataFrame集中到一个字典(推荐,能保留每个DF的名称)或者列表里,然后用推导式一次性完成处理,避免重复写相同代码:

# 假设你有df1, df2, ..., dfN这些DataFrame,先存入字典
dfs = {"df1": df1, "df2": df2, "df3": df3, "dfN": dfN}

# 定义统一的列名映射规则
rename_map = {
    "original_col_a": "new_col_a",
    "original_col_b": "new_col_b",
    "original_col_c": "new_col_c"
}

# 批量处理,生成新的处理后DataFrame字典
processed_dfs = {name: df.rename(columns=rename_map) for name, df in dfs.items()}

# 如果需要覆盖原来的单个变量(不推荐,建议保留原数据)
for name, df in processed_dfs.items():
    globals()[name] = df

2. 封装自定义处理函数,扩展性更强

如果后续还要添加更多统一操作(比如缺失值填充、类型转换、特征工程),把所有处理逻辑封装成一个函数,再批量应用会更清晰:

def standardize_df(df, rename_map):
    # 第一步:重命名列
    df_clean = df.rename(columns=rename_map)
    # 可以在这里添加任意统一处理步骤,比如:
    df_clean["new_col_a"] = df_clean["new_col_a"].astype(float)
    df_clean = df_clean.dropna(subset=["new_col_b"])
    df_clean["new_col_c"] = df_clean["new_col_c"].str.strip()
    return df_clean

# 同样基于字典批量处理
rename_map = {"original_col_a": "new_col_a", ...}
processed_dfs = {name: standardize_df(df, rename_map) for name, df in dfs.items()}

3. 读取阶段直接处理(如果是文件来源)

如果这些DataFrame是从外部文件(CSV/Excel等)读取的,建议在读取时就完成统一处理,减少中间步骤:

import pandas as pd
from glob import glob

def load_and_process(file_path):
    # 读取文件
    df = pd.read_csv(file_path)
    # 直接应用重命名和其他处理
    rename_map = {"original_col_a": "new_col_a", ...}
    return df.rename(columns=rename_map)

# 批量读取指定目录下的所有CSV文件并处理
file_list = glob("./data/*.csv")
processed_dfs = {file.split("/")[-1]: load_and_process(file) for file in file_list}

关键注意点

  • 尽量避免使用inplace=True:Pandas推荐返回新的DataFrame,原地修改容易引发不可预期的副作用,也不利于调试。
  • 用容器(字典/列表)管理多DataFrame,比单独的变量更易维护,遍历、筛选、批量操作都更方便。
  • 遵循DRY(Don't Repeat Yourself)原则,把重复逻辑封装,后续修改只需要改一处。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:14:04