-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsummarize_jobs.py
31 lines (25 loc) · 1.3 KB
/
summarize_jobs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import matplotlib.pyplot as plt
from collections import defaultdict
def summarize_jobs(job_data):
category_counts = defaultdict(int)
budget_by_category = defaultdict(list)
experience_level_counts = defaultdict(int)
for job in job_data.values():
category = job.get('category', 'Uncategorized') # Default if not found
experience_level = job.get('experience_level', 'Unknown') # Default if not found
# Get the budget and attempt to convert to float
budget_str = job.get('budget', '0')
# Attempt to convert to float, handle cases where it is not a valid number
try:
budget = float(budget_str) # Try to convert to float
except ValueError:
print(f"Invalid budget value: {budget_str} for job: {job.get('title')}")
budget = 0 # Default to 0 if the conversion fails
category_counts[category] += 1
budget_by_category[category].append(budget)
experience_level_counts[experience_level] += 1
# Calculate average budget per category
avg_budget_by_category = {}
for category, budgets in budget_by_category.items():
avg_budget_by_category[category] = sum(budgets) / len(budgets) if budgets else 0
return category_counts, experience_level_counts, avg_budget_by_category