Как посчитать все положительные и отрицательные значения в группе панд?

Позволять'Предположим, у нас есть таблица:

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)})

Выход:

      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

Я хочу посчитать, сколько положительных и отрицательных чисел в столбце C принадлежит каждой группе в столбце A и в какой пропорции. В A гораздо больше групп, чем в foo и bar, поэтому имена групп не должныбыть в коде.

Я пытался сгруппировать А, а затем фильтровать, но ненайти правильный путь. Также пытался объединиться с какой-то умной лямбдой, но нет успеха.

Ответы на вопрос(1)

Ваш ответ на вопрос