Объединить два столбца суммировать только один столбец - PullRequest
0 голосов
/ 27 марта 2020

У меня есть датафрейм, который выглядит следующим образом. Есть способ, которым я могу комбинировать строки на основе EmpID. Единственное отличие будет FunctionName между двумя строками, которые я хочу объединить. Я попытался сгруппировать и суммировать, но он суммировал EmpID и Dept. Имя функции не требуется в выходных данных. Выход будет иметь новый столбец с итоговым значением для EmpID

print(output.groupby('UserID').sum())

EmpID   UserID   EMPName   Dept MgrName   FunctionName   Problemsolve Lead  Damages sweeper
0121    jon01     jonny    1910  Sam      problemsolve     9.36         0     0       0
0241    matt04    matt     1910  Sam       Lead              0         6.5    0       0
0147    yong21    youn     1920  lisa       Damages          0          0     2.5     0
0147    youn21    youn     1920  lisa       Lead             0         2.5     0      0  

Это должно выглядеть примерно так

EmpID   UserID   EMPName    Dept  MgrName  Problemsolve   Lead    Damages  sweeper   Total
 0121    jon01    jonny     1910    Sam        9.36         0       0        0        9.36
 0241    matt04    matt     1910    Sam         0          6.5      0        0         6.5
 0147    yong21    youn     1920    lisa        0          2.5     2.5       0         5.0

1 Ответ

0 голосов
/ 27 марта 2020

Если мы назовем ваш первый кадр данных с 4 столбцами как df, код ниже будет сгруппирован по столбцам, которые являются постоянными на уровне пользователя, и суммирует остальные столбцы:

df1 = df.groupby(['EmpID', 'UserID', 'EMPName', 'Dept', 'MgrName']).sum().reset_index()

и код ниже, суммирует 4 столбца в строке и сохраняет их в столбце 'Итого:

df1['Total'] = df1[['Problemsolve', 'Lead', 'Damages', 'sweeper']].sum(axis=1)

Я предположил, что UserID для вас имел опечатку, и перед выполнением этого преобразования сделал его согласованным. Если пользовательская информация c не совпадает в разных строках для пользователя, она не будет сгруппирована вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...