python多级分组方法的替代解决方案,用于在数据帧中创建新变量

python多级分组方法的替代解决方案,用于在数据帧中创建新变量,python,performance,pandas,group-by,apply,Python,Performance,Pandas,Group By,Apply,我试图创建一个函数,该函数基于多级变量分组在数据帧中创建新变量。 下面的补丁可以令人满意地生成所需的结果,但是对于运行时环境,执行时间更高 有人能提出更好的选择吗 def prob_calc(test1): test1["log_sum"] = np.log(sum(np.exp(test1.utility))) test1["prob_logit_within_nest"] = np.exp(test1.utility)/sum(np.exp(test1.utility))

我试图创建一个函数,该函数基于多级变量分组在数据帧中创建新变量。 下面的补丁可以令人满意地生成所需的结果,但是对于运行时环境,执行时间更高

有人能提出更好的选择吗

def prob_calc(test1):
    test1["log_sum"] = np.log(sum(np.exp(test1.utility)))
    test1["prob_logit_within_nest"] = np.exp(test1.utility)/sum(np.exp(test1.utility))
    test1["Freq_of_nest"] = sum(test1.flag)
    return test1
test1 = test1.groupby(['quest_number','task','nest']).apply(prob_calc)
谢谢,
Sombit

您能提供所需的输入和输出样本吗?该函数的输入是一个数据帧(test1)。它有“实用工具”、“标志”、“任务号”、“任务”、“嵌套”等变量。所需的输出应为相同的数据帧,并带有其他列,如“log_sum”、“prob_logit_in_nest”和“Freq_of_nest”。我们需要按列出的分组变量对其进行分组。请提供此信息,以便我们可以轻松地复制和粘贴它进行实验。查阅