Сравните два значения в pandas фрейме данных и, если они равны, добавьте его - PullRequest
0 голосов
/ 11 марта 2020

У меня есть фрейм данных, и при группировании я получаю следующий набор результатов.

Name | Score | Salary A | SALARY B
ABC  | 20    | 300      | 500
XYZ  | 30    | 400      | 600
PQR  | 40    | 300      | 500
TFW  | 50    | 0        | 0
OIP  | 60    | 0        | 0
QWE  | 50    | None     | None
UYT  | 40    | None     | None

Мне нужно сравнить значения salaryA и salaryB (salaryA v / s salaryA и salaryB v / s salaryB). Если зарплата такая же, то я хочу СУММИТЬ балл, иначе мне нужно взять МАКСИМАЛЬНЫЙ балл.

Ожидаемый результат

Name     | Score
ABC, PQR | 60
XYZ      | 30
TFW      | 50
OIP      | 60
QWE      | 50
UYT      | 40

1 Ответ

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

Я сделал это так:

a = pd.read_csv('yourdata.dat',sep='|')
a['total'] = a.iloc[:,2] + a.iloc[:,3]
a.groupby('total').agg({'Name ':','.join,' Score ':'sum'}).reset_index()[['Name ',' Score ']]


         Name    Score 
0  ABC  ,PQR         60
1        XYZ         30
...