Podwójne "groupby" ale tylko dla jednej grupy

0

Hej mam DataFrame z kolumnami "Type", "SubType" i "Value". Chcialbym je pogrupowac po "Type" i pozniej wykonac kolejne grupowanie po "SubType" ale tylko dla tej groupy dla ktorej "Type" == "Type 2". Pozniej komenda agg chialbym posumowac wartosci z kazdej grupy w taki sposob ze dla "Type 1" sumowane sa wartosci ze wszystkich "SubType" bo w tym wypadku nie robilem drugiego grupowania. Jak moge to zrobic najprosciej?

import pandas as pd
df = pd.DataFrame()

df["Type"] = ["1", "2", "1", "2", "1", "2"]
df["SubType"] = ["A", "A","B", "B","C", "C"]
df["Value"] = [1,2,3,4,5,6]

gb = df.groupby(["Type", "SubType"]).agg({"Value": sum})
gb
42

Nie wiem czy dobrze zrozumiałem.

gb = df.groupby(["Type"]).agg({"Value": sum})
gb2 = (df[df["Type"] == '2']).groupby("SubType").agg({"Value":sum})

W przypadku gb2 filtruję wiersze z Type2 a następnie agreguje po SubTypie co daje:
A 2
B 4
C 6

Nie wiem czy dokładnie oto Ci chodziło?

1 użytkowników online, w tym zalogowanych: 0, gości: 1