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

Python代码优化需求:自动化处理180列数据的拆分、均值与增量计算

高效自动化处理多列数据拆分与计算方案

针对你有180列需要重复执行拆分、均值计算、增量计算的场景,完全可以通过封装函数+批量遍历的方式替代重复代码,大幅提升效率和可维护性。

核心实现步骤

  1. 封装单列处理函数
    把你重复执行的逻辑打包成一个函数,传入原始数据集和目标列名,自动返回处理后的该列衍生数据:
import pandas as pd

def process_single_column(raw_df, col_name):
    # 提取UID与目标列
    temp_df = raw_df[['UID', col_name]].copy()
    # 拆分min/max并转为数值型,空值填充0
    temp_df[[f"{col_name} min", f"{col_name} max"]] = temp_df[col_name].str.split("-", expand=True).apply(pd.to_numeric).fillna(0)
    # 计算均值与增量
    temp_df[f"{col_name} Average"] = temp_df[[f"{col_name} min", f"{col_name} max"]].mean(axis=1)
    temp_df[f"{col_name} Inc"] = temp_df[f"{col_name} max"] - temp_df[f"{col_name} min"]
    # 删除原列,返回处理结果
    return temp_df.drop(col_name, axis=1)
  1. 批量处理所有目标列
    定义需要处理的列列表(无需手动逐个列名输入,可自动筛选),遍历调用函数后合并所有结果:
# 自动筛选所有非UID的列作为目标列(若有特殊列需要排除,可调整筛选逻辑)
target_columns = [col for col in dfplayerstatraw2.columns if col != "UID"]

# 初始化结果数据集,仅保留UID列
final_df = dfplayerstatraw2[["UID"]].copy()

# 遍历每一列处理并合并
for col in target_columns:
    processed_df = process_single_column(dfplayerstatraw2, col)
    final_df = pd.merge(final_df, processed_df, on="UID", how="left")

方案优势

  • 代码复用性强:无论列数是3列还是180列,只需维护函数逻辑和列筛选规则
  • 降低出错概率:避免重复复制粘贴代码导致的拼写错误
  • 易维护:后续若需要调整拆分规则、填充值或计算逻辑,只需修改函数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:25:14