Добавление столбца, содержащего аргументы groupby и count, в кадр данных с использованием Numpy - PullRequest
0 голосов
/ 26 декабря 2018

Мне нужно добавить столбец в фрейм данных, содержащий количество строк, сгруппированных по трем другим столбцам.

Таблица под рукой выглядит следующим образом

 Index   Col0    Col1    Col2    Col3

  01      a1     '1'     '2'    '1'
  02      a2     '1'     '2'    '2'
  02      a3     '1'     '2'    '2'
  04      a4     '1'     '2'    '2'
  05      a5     '1'     '2'    '2'
  06      a6     '2'     '2'    '2'

Мне нужно сгруппировать по Col1, Col2 и Col3, а затем сосчитать.Желаемые результаты должны выглядеть следующим образом:

Index   Col0    Col1    Col2    Col3   Col4
 01      a1     '1'     '2'    '1'     1
 02      a2     '1'     '2'    '2'     4
 02      a3     '1'     '2'    '2'     4
 04      a4     '1'     '2'    '2'     4
 05      a5     '1'     '2'    '2'     4
 06      a6     '2'     '2'    '2'     1

Спасибо всем.

1 Ответ

0 голосов
/ 26 декабря 2018

Использование:

df['col4']=df.groupby(['Col1','Col2','Col3']).transform('count').values[:,0]

Я думаю, что у вас есть опечатка в желаемом выводе, если вы хотите, чтобы логика на нем, это должно быть:

   Index Col0  Col1  Col2  Col3  col4
0      1   a1     1     2     1     1
1      2   a2     1     2     2     4
2      2   a3     1     2     2     4
3      4   a4     1     2     2     4
4      5   a5     1     2     2     4
5      6   a6     2     2     2     1
...