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

如何并行将分类器列表的predict方法应用于Pandas DataFrame

高效批量应用多分类器predict方法到Pandas DataFrame的方案

现有一组实现了predict方法的分类器类实例,示例代码如下:

import pandas as pd

class ClassifierA():
    def __init__(self, name):
        self.name = name
        
    def predict(self, x):
        return x + 5
    
class ClassifierB(): 
    def __init__(self, name):
        self.name = name
        
    def predict(self, x):
        return x + 10
    
class ClassifierC():
    def __init__(self, name):
        self.name = name
        
    def predict(self, x):
        return x - 10

classifierA = ClassifierA(name="classifierA")
classifierB = ClassifierB(name="classifierB")
classifierC = ClassifierC(name="classifierC")

list_of_classifiers = [classifierA, classifierB, classifierC]

同时有一个包含10条观测数据的Pandas DataFrame:

df = pd.DataFrame({
    'x': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
})

需要实现将列表中每个分类器的predict方法应用到df.x列,最终输出与以下循环代码完全一致:

for classifier in list_of_classifiers:
    df['{}_prediction'.format(classifier.name)] = df['x'].apply(lambda x: classifier.predict(x))

上述循环执行后的输出结果为:

x  classifierA_prediction  classifierB_prediction  classifierC_prediction
0   1                       6                      11                      -9
1   2                       7                      12                      -8
2   3                       8                      13                      -7
3   4                       9                      14                      -6
4   5                      10                      15                      -5
5   6                      11                      16                      -4
6   7                      12                      17                      -3
7   8                      13                      18                      -2
8   9                      14                      19                      -1
9  10                      15                      20                       0

但目前的循环方法需要遍历分类器列表和数据行,效率较低;而手动指定每个分类器的方式:

predictions = df['x'].apply(
    lambda x: (classifierA.predict(x), classifierB.predict(x), classifierC.predict(x)))

在分类器数量较多时扩展性差,因此寻求更高效、可扩展的实现方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:15:27