Skip to content

HR Analytics Dashboard

Goal

From HR data, answer:

  • Attrition rate
  • Attrition by department/job role
  • Salary and tenure differences

Step 1: Load

Load HR data
import pandas as pd
 
df = pd.read_csv("data/hr.csv")
print(df.head())
Load HR data
import pandas as pd
 
df = pd.read_csv("data/hr.csv")
print(df.head())

Step 2: Attrition rate

Attrition
rate = df["attrition"].mean()  # assuming attrition is 0/1
print("Attrition rate:", rate)
Attrition
rate = df["attrition"].mean()  # assuming attrition is 0/1
print("Attrition rate:", rate)

Step 3: Bar plots by segment

Attrition by dept
import seaborn as sns
import matplotlib.pyplot as plt
 
plt.figure(figsize=(10, 4))
sns.barplot(data=df, x="department", y="attrition")
plt.title("Attrition rate by department")
plt.xticks(rotation=20)
plt.tight_layout()
plt.show()
Attrition by dept
import seaborn as sns
import matplotlib.pyplot as plt
 
plt.figure(figsize=(10, 4))
sns.barplot(data=df, x="department", y="attrition")
plt.title("Attrition rate by department")
plt.xticks(rotation=20)
plt.tight_layout()
plt.show()

Step 4: Box plots for numeric features

Salary vs attrition
import seaborn as sns
import matplotlib.pyplot as plt
 
plt.figure(figsize=(7, 4))
sns.boxplot(data=df, x="attrition", y="salary")
plt.title("Salary vs attrition")
plt.tight_layout()
plt.show()
Salary vs attrition
import seaborn as sns
import matplotlib.pyplot as plt
 
plt.figure(figsize=(7, 4))
sns.boxplot(data=df, x="attrition", y="salary")
plt.title("Salary vs attrition")
plt.tight_layout()
plt.show()

Deliverable

A dashboard should include:

  • Attrition KPI
  • Top segments with high attrition
  • Suggested interventions (training, compensation, career path)

If this helped you, consider buying me a coffee ☕

Buy me a coffee

Was this page helpful?

Let us know how we did