Как создать найти частоту столбца в агрегатной функции в пандах - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть фрейм данных, и я бы хотел сгруппировать по двум столбцам, а затем создать словарь, в котором значение и их частоты используются в качестве агрегатной функции. Вот так выглядят мои данные:

A, B, C
-------
1, 2, V
1, 2, V
1, 2, B
1, 3, V
1, 3, B
1, 3, B

Я хочу сгруппировать A и B и создать словарь, который показывает частоту столбца C. Вот так должен выглядеть мой последний фрейм данных:

A, B, C
-------
1, 2, {V:2, B:1}
1, 3, {V:1, B:2}

Как я могу это сделать?

1 Ответ

0 голосов
/ 15 ноября 2018

Использование groupby + value_counts + to_dict

df=df.groupby(['A','B']).C.apply(lambda x : [x.value_counts().to_dict()]).str[0].reset_index()
df
Out[73]: 
   A  B                 C
0  1  2  {'V': 2, 'B': 1}
1  1  3  {'B': 2, 'V': 1}

df.C.str.len()
Out[75]: 
0    2
1    2
Name: C, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...