#python #pandas #dataframe #average
#python #pandas #фрейм данных #среднее
Вопрос:
В моем фрейме данных Python Pandas есть 2 столбца для зарплаты (сумма) и общего количества сотрудников (Staff), получающих эту конкретную зарплату (10 сотрудников получают 300 долларов, 20 сотрудников получают 200 долларов и 30 сотрудников получают 100 долларов).).Я должен рассчитать среднюю зарплату всех сотрудников. Есть ли какой-либо способ сделать это? Я довольно новичок в Python Pandas, поэтому буду признателен за любую помощь! Заранее спасибо.
Amount Staff
0 100 30
1 200 20
2 300 10
Ответ №1:
Это точно так, как вы описали — никаких специальных методов.
df = pd.read_csv(io.StringIO(""" Amount Staff
0 100 30
1 200 20
2 300 10"""), sep="s ")
(df["Amount"] * df["Staff"]).sum() / df["Staff"].sum()
вывод
166.66666666666666
Ответ №2:
Я думаю, вы можете использовать mean
по определению — sum / counts:
s = df.assign(Amount = df["Amount"].mul(df["Staff"])).sum()
print (s)
Amount 10000
Staff 60
dtype: int64
print (s.Amount / s.Staff)
166.66666666666666