DevGang
Авторизоваться

Измерение роста числа сотрудников с Python

Python для управления бизнесом? Бьюсь об заклад, это не то, что приходит вам в голову очень часто, учитывая тонны программного обеспечения и инструментов для управления бизнесом и человеческими ресурсами, представленных на рынке (например, Wrike, Jira, Trello, Microsoft Azure DevOps, Tableau, Power BI, Gusto, Calendly, Skedulo, ADP, SalesForce и т.д.).. Хотя Python не является наиболее подходящим инструментом для этих целей, его все же можно использовать для решения простых задач, которые могут принести организации ценные идеи и выводы.

Большинство программ и инструментов для управления бизнесом и человеческими ресурсами не требуют никакого или очень небольшого программирования по сравнению с Python, который сам по себе является языком программирования. Это означает, что даже аудитория нетехнических специалистов может легко использовать их, не проходя через значительную кривую обучения. С другой стороны, пользователь должен был бы заранее знать язык программирования Python, чтобы выполнить с его помощью задачу.

Python, как язык программирования с открытым исходным кодом, содержит множество библиотек и модулей для упрощения манипулирования данными и визуализации, таких как pandas, matplotlib, seaborn, pyviz, plotly и hvplot, и это лишь некоторые из них. С помощью таких библиотек мы можем проявить творческий подход и написать сценарии для решения простых, но ценных задач для бизнеса. 

Практический пример

Давайте используем Python для написания простого скрипта, который будет генерировать фрейм данных с общим количеством активных сотрудников в месяц на основе дат приема их на работу и ухода. Кроме того, давайте построим линейную диаграмму, которая поможет нам определить любые тенденции найма или ухода (если таковые имеются) с течением времени. Для этого примера я создал csv-файл со случайными датами приема на работу и отъезда для 50 сотрудников. Наша цель будет заключаться в том, чтобы измерить рост компании с течением времени и определить ее лучший и худший год на данный момент. 

Давайте взглянем на код Python.


# Import libraries and dependencies
import pandas as pd
import datetime
import matplotlib.pyplot as plt
%matplotlib inline

# Read employees csv file
df = pd.read_csv("employees.csv")

# Display top rows
df.head()
# Replace null values with string "no" (i.e., meaning that employee has not left the company)
df['Departure Date'] = df['Departure Date'].fillna("no")

# Get a list of all months from the hiring date of the first employee until current month
all_months = pd.date_range(df["Hiring Date"].unique()[0], datetime.datetime.today().strftime('%m/%d/%Y'), freq='MS').strftime("%Y-%b").tolist()

# Initialize list for cummulative employees
cummulative_employees = []

# Loop through all the months in list
for past_month in all_months:
    
    # Initialize counter of active employees for given month
    current_employees_in_month = 0
    
    # Loop through all the employees
    for i in range(0,len(df)):
        
        # If employee was hired on or before current month and has not departed
        if pd.to_datetime(df["Hiring Date"][i]) <= pd.to_datetime(past_month) and (df["Departure Date"][i] == "no"):
            current_employees_in_month += 1
            
        # If employee has departed and was hired on or before current month and their departure date is greater than current month
        if df["Departure Date"][i] != "no" and pd.to_datetime(df["Hiring Date"][i]) <= pd.to_datetime(past_month) and pd.to_datetime(df["Departure Date"][i]) > pd.to_datetime(past_month):
            current_employees_in_month += 1

    # Append total cummulative employees for given month
    cummulative_employees.append(current_employees_in_month)
    
# Create dataframe with active employees count per month
employees_df = pd.DataFrame({"Date":all_months, "Count Active Employees":cummulative_employees})

# Parse Date column as datetime and set it as index
employees_df["Date"] = pd.to_datetime(employees_df["Date"])
employees_df.set_index("Date", inplace=True)

# Display bottom rows
employees_df.tail()

Теперь, когда мы получили наш фрейм данных с количеством активных сотрудников в месяц, давайте построим линейную диаграмму, которая поможет нам визуализировать результаты. 


# Set matplotlib style
plt.style.use('ggplot')

# Plot linechart
plt.figure(figsize=(20,7))
plt.plot(employees_df, "--o", c= "grey")
plt.xlabel("Date")
plt.ylabel("Count of Active Employees")
plt.title("Employees Growth Over Time")
plt.xticks(employees_df.index, rotation=90)
for a,b in zip(employees_df.index, employees_df["Count Active Employees"]): 
    plt.text(a, b, str(b))
view raw

Основываясь на приведенном выше линейном графике, можно заметить, что компания имела медленный, но устойчивый рост с момента своего создания до мая 2022 года. Начиная со второй половины июня 2022 года и вплоть до декабря 2021 года компания продемонстрировала значительный рост, увеличившись с 7 сотрудников до 38. Наконец, можно заметить, что компания не роста в течение 2022 года.

В идеале этот скрипт на Python должен быть автоматизирован и выполняться на регулярной основе, чтобы поддерживать актуальность информации. Таким образом, компания могла бы лучше отслеживать рост своей рабочей силы с течением времени. 

Вывод

Этот практический пример продемонстрировал, как Python можно использовать для решения простых задач, связанных с управлением бизнесом и человеческими ресурсами с помощью нескольких строк кода. Как было предложено ранее, если в вашей организации имеются другие менее технические инструменты и программное обеспечение для управления бизнесом и человеческими ресурсами, не обязательно использовать Python для решения задач такого типа. Каждая организация должна оценить и сравнить различные доступные варианты инструментов на основе бюджета, актуальности, сложности, полноты и других факторов. На данный момент это была просто творческая идея, о том как предоставить ценную информацию и тенденции вашему отделу кадров всего с помощью нескольких строк кода.

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу