Как метод .sum()
в pandas.DataFrame
физически работает?
Я рассчитываю пропорцию заработной платы каждого отдельного штатного работника к общей сумме всех зарплат.
CSV имеет 33 000 строк.
Функция ниже, add_proportion, идет строка за строкой и читает зарплату каждого работника, а затем делит ее на salary.sum()
для всех строк.
Вопрос: В каждом из этих 33 000 циклов salary.sum()
выполняет свои собственные 33 000 циклов для вычисления общего количества раз?
Запрашиваемая, потому что в этом случае общее количество циклов составило бы 1 миллиард (33000 умноженных на 33000), что должно привести к некоторой задержке. Но задержки нет, функция запускается мгновенно.
Следовательно, .sum()
вычисляет сумму только во время первого цикла и затем повторно использует значение?
Спасибо.
import pandas as pd
staff = pd.read_csv('staff.csv', names = ['name', 'salary'])
def add_proportion(group):
group['proportion'] = salary / salary.sum()
return group