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

优化代码:根据DataFrame名称移除列名末尾数字

优化DataFrame列名清理代码

你原来的代码用了大量重复的if判断,既冗余又难维护。可以通过映射字典统一管理不同DataFrame对应的清理规则,同时合并重复逻辑,让代码更简洁易扩展:

def clean_df_columns(df_dict):
    # 定义DF名称到要移除的末尾数字的映射
    df_num_map = {
        "df3": "0",
        "df5": "1",
        "df4": "2",
        "df6": "3"
    }
    
    for df_name, df in df_dict.items():
        if df_name in df_num_map:
            target_num = df_num_map[df_name]
            # 先移除指定末尾数字,再移除末尾下划线
            df.columns = df.columns.str.replace(rf'{target_num}$', '', regex=True)
            df.columns = df.columns.str.replace(r'_$', '', regex=True)
    return df_dict

优化细节说明:

  • 用df_num_map字典替代一堆if判断,后续新增/修改规则只需调整字典,不用改动核心逻辑
  • 函数名改为语义化的clean_df_columns,比原remove更清晰
  • 重复的下划线清理逻辑保留,但通过映射避免了重复的数字替换代码

如果想进一步减少正则调用次数,还可以把两次替换合并成一次:

def clean_df_columns(df_dict):
    df_num_map = {
        "df3": "0",
        "df5": "1",
        "df4": "2",
        "df6": "3"
    }
    
    for df_name, df in df_dict.items():
        if df_name in df_num_map:
            target_num = df_num_map[df_name]
            # 一次匹配末尾的「指定数字+可选下划线」或「单独下划线」
            df.columns = df.columns.str.replace(rf'{target_num}_?$|_$', '', regex=True)
    return df_dict

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:42:37