Jak policzyć wszystkie wartości dodatnie i ujemne w grupie pand?

Załóżmy, że mamy tabelę:

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B' : ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C' : np.random.randn(8), 'D' : np.random.randn(8)})

Wydajność:

      A       B          C           D
0    foo     one    -1.304026    0.237045
1    bar     one     0.030488   -0.672931
2    foo     two     0.530976   -0.669559
3    bar     three  -0.004624   -1.604039
4    foo     two    -0.247809   -1.571291
5    bar     two    -0.570580    1.454514
6    foo     one     1.441081    0.096880
7    foo     three   0.296377    1.575791

Chcę policzyć, ile dodatnich i ujemnych liczb w kolumnie C należy do każdej grupy w kolumnie A iw jakiej proporcji. W A jest znacznie więcej grup niż foo i bar, więc nazwy grup nie powinny znajdować się w kodzie.

Próbowałem grupować A, a następnie filtrować, ale nie znalazłem właściwej drogi. Próbowałem także agregować za pomocą inteligentnej lambdy, ale nie udało się.

questionAnswers(1)

yourAnswerToTheQuestion