Объединить строки в pandas фрейме данных несколькими условиями - PullRequest
0 голосов
/ 08 марта 2020

У меня есть следующий фрейм данных:

ID_number  Name      Date      S_code    S_description 
1          Dani     01/2017      G1       PROCEDURE ON SINGLE VESSEL
1          Dani     01/2017      R56      INSERTION OF THREE VASCULAR STENTS
1          Dani     06/2017      L34      CHOLECYSTECTOMY
2          Alice    03/2015      L12      OTHER CYSTOSCOPY
3          Elle     04/2015      L34      CHOLECYSTECTOMY
3          Elle     04/2015      H6       EXCISION OR DESTRUCTION OF PERITONEAL TISSUE

Я хочу объединить строки, если столбцы «ID_Number», «Name» и «Date» идентичны, а столбцы «S_code» и «S_description» "будет объединен, чтобы данные выглядели так:

    ID_number   Name   Date     S_code     S_description 
        1       Dani   01/2017  G1,R56     PROCEDURE ON SINGLE VESSEL,INSERTION OF THREE VASCULAR STENTS
        1       Dani   06/2017    L34      CHOLECYSTECTOMY
        2       Alice  03/2015    L12      OTHER CYSTOSCOPY
        3       Elle   04/2015  L34,H6     CHOLECYSTECTOMY,EXCISION OR DESTRUCTION OF PERITONEAL TISSUE

Столбец" ID_Number "отсортирован.

Я новичок в Python и буду признателен за любую помощь с этим вопросом!

1 Ответ

1 голос
/ 08 марта 2020

Используйте pandas groupby в трех столбцах и передайте pandas string cat в качестве функции через метод agg:

 df.groupby(['ID_number','Name','Date']).agg(lambda x: x.str.cat(sep=','))

                            S_code  S_description
ID_number   Name    Date        
1           Dani    01/2017 G1,R56  PROCEDURE ON SINGLE VESSEL,INSERTION OF THREE ...
                    06/2017 L34     CHOLECYSTECTOMY
2           Alice   03/2015 L12     OTHER CYSTOSCOPY
3           Elle    04/2015 L34,H6  CHOLECYSTECTOMY,EXCISION OR DESTRUCTION OF PER...
...