Как найти среднюю зарплату для каждой роли работы из файла в Python - PullRequest
0 голосов
/ 14 декабря 2018

Я хочу написать python код, чтобы найти среднюю зарплату для каждого типа должности

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Я хочу написать код Python, чтобы найти среднюю зарплату для каждого типа должности (Разработчик, DevOps, Аналитик, Тестер)


Для этого вы можете использовать pandas, то есть:

import pandas as pd
df = pd.read_csv('emp_data.txt', sep=", ", engine='python')

означает

print(df.groupby('POSITION').agg({'SALARY':'mean'}))

Выход:

POSITION   SALARY            
Analyst    31000.000000
DevOps     34500.000000
Developer  35333.333333
Tester     31333.333333

Медиана

print(df.groupby('POSITION').agg({'SALARY':'median'}))

Выход:

POSITION    SALARY
Analyst     28000
DevOps      35000
Developer   29000
Tester      33000

Примечания:

0 голосов
/ 14 декабря 2018

Я думаю, что вы делаете это как упражнение, чтобы научиться кодировать такие вещи с помощью Python?Тогда этот подход, который использует только основные команды и типы Python, должен быть полезен:

# read file content
with open('emp_data.txt') as f:
    file_content = f.readlines()

# collect data
data = {}
for i, line in enumerate(file_content):
    if i == 0:
        # discard header
        continue
    index, person, age, job, salary, years = line.split(",")
    job = job.strip()
    salary = int(salary.strip())
    if not job in data:
        # create new empty list if this is the first time this job appears
        data[job] = []
    data[job].append(salary)

print("data =", data)

# calculate mean
mean = {}
for job in data:
    mean[job] = sum(data[job]) / len(data[job])

print("mean =", mean)

Какая печать

data = {'Developer': [29000, 24000, 53000], 'Tester': [42000, 33000, 19000], 'Analyst': [21000, 44000, 28000], 'DevOps': [42000, 50000, 38000, 22000, 23000, 32000]}
mean = {'Developer': 35333.333333333336, 'Tester': 31333.333333333332, 'Analyst': 31000.0, 'DevOps': 34500.0}

Если вы хотите использовать расширенные модули, вы должны взглянуть наnumpy или pandas.

...