Панды дублируют групповые - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть датафрейм Pandas и некоторые числовые данные о некоторых людях. Что мне нужно сделать, так это найти людей, которые появляются более одного раза в кадре данных, и заменить все строки об одном человеке одной строкой, где числовые значения являются суммой числовых значений строк, которые были в предыдущих столбцах, а минимум этого значения в другом. Я знаю, как сделать сумму с помощью groupby () и sum (), но не знаю, как сделать разные вещи для разных столбцов

Пример:

Names  Column1 Column2 Column3  
John     1        2     2016
Bob      2        3     2011
Pier     1        1     2003
John     3        3     2005
Bob      1        0     2018

Должно стать:

Names  Column1 Column2 Column3  
John     4        5     2005
Bob      3        3     2011
Pier     1        1     2003

Как мне это сделать?

1 Ответ

0 голосов
/ 03 ноября 2018

Используйте groupby + agg и определите конкретные функции агрегирования для каждого столбца как dict, например:

df.groupby('Names').agg({'Column1':'sum', 'Column2':'sum','Column3':'min'})

    Column1 Column2 Column3
Names           
Bob     3     3     2011
John    3     3     2005
Jonh    1     2     2016
Pier    1     1     2003
...