Команды группы панд разделяют слова со вторым столбцом, затем по группам и сумме - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть пандас с двумя столбцами.report_tags - это слова, разделенные запятыми, а t_f - флаг для да или нет (1 или 0).Я хотел бы разделить эти слова, разделенные запятыми, и группу на t_f.Затем суммируйте tag/t_f группировки в новом столбце с именем count

df 
    report_tags             t_f
0   bec,eac,fbi,ic3,scam    1
1   dlink,router,wifi       0
2   adobe                   0
3   bec, fbi                1
4   bec, fbi, scam          0

Желаемый результат:

df2
   tag    t_f   count
0  bec    1     2
1  eac    1     1
2  fbi    1     2
3  ic3    1     1
4  scam   1     1
5  dlink  0     1
6  router 0     1
7  wifi   0     1
8  adobe  0     1
9  bec    0     1
10 fbi    0     1
11 scam   0     1

1 Ответ

1 голос
/ 20 сентября 2019

Использование str.split + explode


k = dict(sort=False)

(df.set_index('t_f')['report_tags']
  .str.split(r',\s*').explode()
  .groupby(level=0, **k).value_counts(**k)
  .rename('count').reset_index())

    t_f report_tags  count
0     1         bec      2
1     1         eac      1
2     1         fbi      2
3     1         ic3      1
4     1        scam      1
5     0       adobe      1
6     0         bec      1
7     0       dlink      1
8     0         fbi      1
9     0      router      1
10    0        scam      1
11    0        wifi      1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...