Pandas groupby - conjunto de valores diferentes

Tengo este marco de datos

x = pd.DataFrame.from_dict({'cat1':['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'], 'cat2':['X', 'X', 'Y', 'Y', 'Y', 'Y', 'Z', 'Z']})

  cat1 cat2
0    A    X
1    A    X
2    A    Y
3    B    Y
4    B    Y
5    C    Y
6    C    Z
7    C    Z

Quiero agrupar porcat1y luego agregarcat2 como conjuntos de valores diferentes, como

  cat1 cat2
0    A    (X, Y)
1    B    (Y,)
2    C    (Y, Z)

Esto es parte de un marco de datos más grande con más columnas, cada una de las cuales tiene su propia función de agregación, entonces, ¿cómo paso esta funcionalidad al diccionario de agregación?

Respuestas a la pregunta(5)

Su respuesta a la pregunta