Я работаю со строкой данных 1,000,000+ pandas, которая выглядит примерно так:
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
Моя цель - рассчитать среднее значение TIME_DURATION для каждого DEPARTMENT на ACTION на TASK_CODE. Я сделал следующее:
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). Это занимает некоторое время с размером кадра данных, который у меня есть. Каким самым быстрым способом можно go выполнить вышеупомянутую задачу?
PS. Я попробовал for x, df1 in df.groupby(["DEPARTMENT", "ACTION", "TASK_CODE"]):
Эта операция заняла значительно больше времени, чем первая. Кроме того, если название вопроса не имеет смысла, предложите внести изменения.