Группировка категорий по идентификаторам python - PullRequest
0 голосов
/ 04 октября 2018

У меня есть таблица (фрейм данных) следующим образом

--------------------------
|ID    | code  | happened|
--------------------------
|  1   | A     |    1    |
|  1   | B     |    1    |
|  1   | A     |    1    |
|  2   | A     |    0    |
|  2   | c     |    0    |
|  2   | D     |    0    |
|  3   | E     |    1    |
|  3   | E     |    1    |

happened не изменяется для ID

--------------------------    
|ID    |  list | happened |
---------------------------
| 1    |  A,B,A| 1        |
| 2    | A,C,D | 0        |
| 3    | E, E  | 1        |

list должен сохранять последовательностьсписок кодов.Любая помощь очень ценится

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Подход с использованием pivot_table:

(df.pivot_table(
    index='ID', values='code', aggfunc=','.join).join(df.groupby('ID').happened.first()))

     code  happened
ID
1   A,B,A         1
2   A,c,D         0
3     E,E         1
0 голосов
/ 04 октября 2018

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

df.groupby('ID',as_index=False).agg({'code': lambda x : ','.join(x),'happened':'first'})
Out[911]: 
   ID   code  happened
0   1  A,B,A         1
1   2  A,c,D         0
2   3    E,E         1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...