Допустим, у меня есть следующий фрейм данных:
df2 = 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)})
df2.head()
, который выглядит следующим образом:
A B C D
0 foo one 0.613774 0.783539
1 bar one -0.937659 -0.913213
2 foo two -1.568537 1.569597
3 bar three -0.353449 1.108789
4 foo two -1.769544 0.530466
Я знаю, что если бы я хотел создать другой столбец, который является счетчиком записи для каждого значения в столбце A, я мог бы сделать следующее:
df2['counts'] = df2.groupby('A')['B'].transform(np.size)
Однако, скажем, я хочу только подсчитать уникальные элементы B сгруппированы по A? Я знаю, как это сделать, если я собирался уменьшить размер кадра данных до 2 столбцов (один для «foo» и один для «bar»), но как мне сделать это с помощью преобразования?