Вдохновленный сообщением this, я хотел бы получить отдельный счетчик значения в кадре данных для каждой группы и создать столбец с отдельными значениями счета в кадре данных. Как это:Pandas column count
Оригинальный кадр данных:
import pandas as pd
df = pd.DataFrame(
{'A' : ['foo', 'foo', 'foo', 'foo',
'bar', 'bar', 'bar', 'bar'],
'B' : ['foo', 'fo', 'foo', 'foo',
'bar', 'bar', 'ba', 'ba'],
'C' : [2, 4, 4, 2, 5, 4, 3, 2]})
df
A B C
0 foo foo 2
1 foo fo 4
2 foo foo 4
3 foo foo 2
4 bar bar 5
5 bar bar 4
6 bar ba 3
7 bar ba 2
Метод от связанного поста применяется:
df=df.groupby(['A','B'])['C'].apply(lambda x: len(x.unique()))
df
Результат за связанного метода сообщения:
A B
bar ba 2
bar 2
foo fo 1
foo 2
Name: C, dtype: int64
Желаемый результат:
A B C Distinct Count of C per A and B
0 foo foo 2 2
1 foo fo 4 1
2 foo foo 4 2
3 foo foo 2 2
4 bar bar 5 2
5 bar bar 4 2
6 bar ba 3 2
7 bar ba 2 2
Глядя на первую строку, комбинация «foo» в «A» и «foo» в «B» имеет 2 уникальных значения, связанных с ней (2 и 4), в результате чего в каждой строке указано 2 что комбинация значений для столбцов A и B.
Благодарим заранее!