Vietnam Jobs 2023
Mục tiêu phân tích:
Top công việc và ngành nghề có nhu cầu cao tại thị trường Việt Nam (định lượng)
Top việc làm và ngành nghề được trả lương cao nhất
Phân tích số liệu việc làm Marketing
Phân tích số liệu việc làm Analytics
I. Trích xuất dữ liệu từ file nguồn Career Builders
SELECT *
FROM 'vietnamese-job-posting.csv'
1. Trích xuất dữ liệu cần khảo sát:
Tạo dữl liệu mới cho cột bảng 'salary', thay vì là chuỗi chuyển về định dạng chữ số để phân tích theo định lượng
Tạo dữ liệu mới cho cột bảng 'category', theo chi tiết công việc
Dùng Pandas:
import pandas as pd
import re
## Create Dataframe with Pandas:
file = pd.read_csv('/work/vietnamese-job-posting.csv')
jobs = pd.DataFrame(file)
## Convert the salary column to integer
jobs['int_salary_list'] = None
for i, salary in enumerate(jobs['salary']):
try:
if 'Trên' in salary or 'Dưới' in salary:
number = re.findall(r'\d+[\.,]?\d*', salary)
if number:
extracted_number = float(number[0].replace(',', '.'))
jobs.loc[i, 'int_salary_list'] = int(extracted_number)
else:
jobs.loc[i, 'int_salary_list'] = None
else:
number = salary.split('Tr')[1].replace('-', '').strip()
extracted_number = float(number.split(',')[0])
jobs.loc[i, 'int_salary_list'] = int(extracted_number)
except (IndexError, ValueError):
jobs.loc[i, 'int_salary_list'] = None
## Check salary headline:
jobs[['job_title','category', 'exp','salary','int_salary_list']].sort_values('int_salary_list', ascending=False).head()
## Create a new column as 'category_detailed'
top_category = jobs['category'][0]
## Chia ngành chi tiết 'Kế toán / Kiểm toán | Ngân hàng | Tài chính / Đầu tư' => 'Kế toán / Kiểm toán'
type(top_category.split('|')[0])
for k, category in enumerate(jobs['category']):
try:
if isinstance(category, str):
category_detailed = category.split('|')[0]
jobs.loc[k, 'category_detailed'] = category_detailed
else:
jobs.loc[k, 'category_detailed'] = None
except (IndexError, ValueError):
jobs.loc[k, 'category_detailed'] = None
jobs.head()
II. Trả lời câu hỏi:
Top công việc và ngành nghề có nhu cầu cao tại thị trường Việt Nam (định lượng)
SELECT category_detailed, COUNT(category_detailed) as count_category
FROM converted_jobs.csv
GROUP BY category_detailed
ORDER BY count_category DESC
LIMIT 10;
Ngành theo mức lương
SELECT category_detailed, ROUND(AVG(int_salary_list)) AS mean_salary
FROM converted_jobs.csv
GROUP BY category_detailed
ORDER BY mean_salary DESC
Phân tích số liệu nghề Marketing dựa theo nhu cầu và mức lương
A. Marketing:
SELECT COUNT(job_title) AS count_marketing_job, ROUND(AVG(int_salary_list),2) AS avg_salary
FROM converted_jobs.csv
WHERE job_title LIKE '%arketing%' OR job_title LIKE '%iếp%' OR job_title LIKE '%uảng%'
SELECT COUNT(job_title) AS count_marketing_job, MAX(int_salary_list) AS max_salary
FROM converted_jobs.csv
WHERE job_title LIKE '%arketing%' OR job_title LIKE '%iếp%' OR job_title LIKE '%uảng%'
B. BI/Data Analyst:
SELECT COUNT(job_title) AS count_analyst_job, ROUND(AVG(int_salary_list),2) AS avg_salary
FROM converted_jobs.csv
WHERE job_title LIKE '%hân tích%' OR job_title LIKE '%iệu%' OR job_title LIKE '%lyst%' OR job_title LIKE '%ata%'
SELECT COUNT(job_title) AS count_analyst_job, MAX(int_salary_list) AS max_salary
FROM converted_jobs.csv
WHERE job_title LIKE '%hân tích%' OR job_title LIKE '%iệu%' OR job_title LIKE '%lyst%' OR job_title LIKE '%ata%'
Cô hội việc làm và mức lương của ngành nghề Marketing cao hơn Data Analyst