У меня есть датафрейм с 4 столбцами. 3 из этих столбцов содержат строковые значения (имена людей), а 4-й столбец имеет значение int (оклад за выполненную работу).
Строковые значения также не являются уникальными, одна и та же строка будет отображаться несколько раз в каждом столбце, но не более одного раза в строке.
data = {
'worker1': ['Sam', 'Jack', 'Matt', 'Paul', 'Tim'],
'worker2': ['Alex', 'Amy', 'Sam', 'Alice', 'Amanda'],
'worker3': ['Alice', 'Aaron', 'Tony', 'Jack', 'Sam'],
'earnings': [4564552, 4573547, 3567567, 6357653, 7648576]}
df = pd.DataFrame(data, columns = ['worker1', 'worker2', 'worker3', 'earnings'])
print(df)
worker1 worker2 worker3 earnings
'Sam' 'Alex' 'Alice' 4564552
'Jack' 'Amy' 'Aaron' 4573547
'Matt' 'Sam' 'Tony' 3567567
'Paul' 'Alice' 'Jack' 6357653
'Tim' 'Amanda' 'Sam' 7648576
Итак, мне нужно сложить все доходы, связанные с конкретным именем, независимо от того, отображается ли оно в столбцах 1, 2 или 3. Я не уверен, стоит ли мне использовать для этого функцию groupby, создать словарь или перейти другой маршрут.
Это то, чего я пытаюсь достичь:
workers total_earnings
Sam 16080695
Alex 4564552
Alice 10922205
Jack 10931200
Amy 4573547
Aaron 4573547
Matt 3567567
Tony 3567567
Paul 6357653
Tim 7648576
Amanda 7648576
Я довольно новичок в пандах, поэтому я в месте, где я не знаю, какие функции я могу использовать для чего-то подобного. В основном я пытался использовать функцию groupby
, но это было катастрофой.
Любая помощь будет принята с благодарностью.