如何在数据帧上加速for循环

2024-09-28 05:17:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要将for循环转换为一组函数,以更快地循环数据。它在数据帧中循环并减去值。我曾想过映射数据帧,但它对我来说不是最清晰的概念,我可以使用提供的任何帮助

for nd in wnkd['days'].unique():
    for ld in lps['level'].unique():
        nmrtr = []
        for ty in types:
            try:
                nmrtr.append((sum(wnkd.loc[(wnkd['level']== ld) & (wnkd['typs'] == ty) & (wnkd['data_set'] == 'rules'),'FRQ'].values)-(
                            sum(wnkd.loc[(wnkd['level']== ld) & (wnkd['typs']== ty ) & (wnkd['data_set'] == 'actual'), 'FRQ']))))
            except (KeyError,IndexError) as e:
                nmrtr.append(0)
        print(nmrtr,ld)
        nmrtr.append(ld)
        nmrtr.append(nd)

try/except已就位,因为如果for循环的此部分中不存在某个值,则该值可能位于另一部分中。例如,当ld为3且类型为car时,可能没有任何值,但当ld为4且类型为car时,可能有一个值。目标是按周日期(nd)、级别(ld)和类型(ty)对数据的每个部分进行循环,以比较两个不同数据集的值。FRQ是指通过对原始数据集进行分组而生成的频率。还要注意的是,仅仅因为实际值为nd=3/1、level=4和type=car并不意味着规则将具有相同的类型。规则将具有相同的nd和级别,但类型可能有所不同。我想知道这些类型的变化有多频繁


Tags: 数据in类型forcarleveluniquetry

热门问题