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

如何让函数批量遍历多组元组列表,为DataFrame新增计算列?

解决方案:批量处理多组元列计算规则

我明白你的需求啦——你现在的divide_two_cols函数只能单次处理一组元组列表,但手上有好几组这样的计算规则,想一次性完成所有新列的添加对吧?这里有两个实用的方案可以解决这个问题:

方案1:修改原函数,支持批量传入多组元组列表

我们可以调整函数参数,让它能接受任意数量的元组列表,然后内部遍历每一组进行处理:

import numpy as np
import pandas as pd

def divide_two_cols_batch(df, *tuple_lists):
    # 遍历所有传入的元组列表
    for tuple_list in tuple_lists:
        for x, y, z in tuple_list:
            calc = df[x] / df[y]
            calc.replace(np.inf, 0, inplace=True)
            calc.fillna(value=0, inplace=True)
            df[str(z)] = calc
    return df

使用方式

直接把所有需要处理的元组列表作为参数传入即可:

# 假设你的原始DataFrame名为df
df = divide_two_cols_batch(df, tuple_list_2, tuple_list_3, tuple_list_4, tuple_list_5, tuple_list_6, tuple_list_7)

方案2:不修改原函数,批量循环调用

如果你不想改动已有的divide_two_cols函数,可以把所有元组列表收集到一个大列表中,然后循环调用原函数处理每一组:

# 收集所有需要处理的元组列表
all_calc_rules = [tuple_list_2, tuple_list_3, tuple_list_4, tuple_list_5, tuple_list_6, tuple_list_7]

# 循环处理每一组规则
for rule_list in all_calc_rules:
    df = divide_two_cols(df, rule_list)

两种方案的小说明

  • 方案1更简洁,减少了外部循环的代码量,适合后续还要新增更多计算规则的场景;
  • 方案2完全保留原函数逻辑,适合不想改动已有稳定代码的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:51:33