Группировать по идентификатору и подсчету текста через запятую в python pandas - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть такой фрейм данных,

customer    tags
0   A   chocolate, sprinkles
1   A   chocolate, filled
2   B   chocolate, filled
3   C   chocolate, sprinkles
4   C   glazed
5   B   chocolate, filled
6   A   chocolate, sprinkles
7   C   glazed

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

Мой ожидаемый результат -

customer    chocolate   sprinkles   filled  glazed
   A            3           2         1       0
   B            2           0         2       0
   C            1           1         0       2

1 Ответ

2 голосов
/ 14 апреля 2020

Используйте str.split, explode и crosstab:

df = df.assign(tags=df["tags"].str.split(", ")).explode("tags")

print (pd.crosstab(df["customer"],df["tags"]))

tags      chocolate  filled  glazed  sprinkles
customer                                      
A                 3       1       0          2
B                 2       2       0          0
C                 1       0       2          1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...