扁平化嵌套熊猫数据框的最快方法

时间:2020-03-23 04:05:45

标签: python pandas numpy time-complexity pandas-groupby

我正在使用一个超过1,000,000行的熊猫数据框,看起来像这样:

DEPARTMENT     ACTION      TASK_CODE      TIME_DURATION
A              CLEAN       0001           25.0
B              REWORK      0002           20.0
C              SCRAP       0003           21.0
D              FIX         0004           22.0
E              DESTROY     0005           24.0

我的目标是计算每个TASK_CODE每个动作每个部门的平均TIME_DURATION。我所做的如下:

for dep, df1 in df.groupby("DEPARTMENT"):
    for act, df2 in df1.groupby("ACTION"):
        for code, df3 in df2.groupby("TASK_CODE"):
            average_duration = df3["TIME_DURATION"].mean()

由于O(n3)的复杂性,这不是一个很好的解决方案。这与我拥有的数据帧的大小需要一些时间。完成上述任务的最快方法是什么?

PS。我尝试了for x, df1 in df.groupby(["DEPARTMENT", "ACTION", "TASK_CODE"]): 与第一次操作相比,此操作花费的时间明显更长。另外,如果问题标题没有意义,请提出修改建议。

0 个答案:

没有答案