一、数据集概况
数据集名: 英国公司(职位)评论数据
数据来源: Glassdooor
覆盖日期: 2008-01-25 ~ 2023-07-26
评价数量: 9901889 条
公司数量: 35541家
下载数据: https://www.kaggle.com/datasets/davidgauthier/glassdoor-job-reviews-2/data
本文声明: 科研用途; 如分享有问题,可加微信372335839,备注「姓名-学校-专业」
1.1 网站介绍
Glassdoor 成立于2007年,总部位于美国加利福尼亚州的 Mill Valley。 Glassdoor允许员工匿名发布对公司、工作环境、薪资等方面的评价,同时也提供了职位搜索、公司评分、面试经验分享等功能,为求职者和在职员工提供参考。
尽管Glassdoor起源于美国,但它已经扩展到包括英国在内的多个国家和地区,为全球用户提供服务。这意味着用户可以在Glassdoor上查找来自世界各地的公司信息和职位空缺,包括但不限于:
- 公司评论和评分
- 薪资报告
- 面试问题和经验
- 职位招聘信息
因此,虽然Glassdoor可以在英国使用,并且对英国的职场人士非常有用,但它并不是一个仅限于英国或由英国运营的网站。它是一个跨国平台,旨在为全球用户提供有关职场和招聘过程中的透明信息。
1.2 字段
- rating 总体评分(1~5分)
- title 评论的标题
- status 员工状态(在职、离职,以及在该公司的工作时长)
- pros 公司的优点
- cons 公司的缺点
- advice 建议
- Recommend 推荐程度(v正面,r轻微,x负面,o无意见)
- CEO Approval 对CEO的认可程度(v正面,r轻微,x负面,o无意见)
- Business Outlook 公司(业务)前景(v正面,r轻微,x负面,o无意见)
- Career Opportunities 职业发展机会评分(1~5分)
- Compensation and Benefits 薪酬与福利评分(1~5分)
- Senior Management 高级管理层评分(1~5分)
- Work/Life Balance 工作与生活平衡评分(1~5分)
- Culture & Values 文化&价值观评分(1~5分)
- Diversity & Inclusion 多样性&包容性评分(1~5分)
- firm_link 公司链接
- date 评论发布日期
- job 职位
二、实验
2.1 读取数据
%%time
import pandas as pd
df = pd.read_csv('glassdoor_review.csv')
df.head()
Run
CPU times: user 27.4 s, sys: 3.47 s, total: 30.9 s
Wall time: 31 s
2.2 字段缺失程度
import missingno as ms
ms.matrix(df)
从上图可知, advice字段条纯白, 几乎全为缺失值。 而黑白相间的则存在一定比例的缺失值, 如
- Career Opportunities
- Compensation and Benefits
- Senior Management
- Work/Life Balance
- Culture & Values
- Diversity & Inclusion
2.3 公司数
数据集中涉及的公司数量
print('公司数:', df.firm_link.nunique())
Run
公司数:35541
2.4 覆盖日期
员工评价发布日期覆盖(起止)范围
df['date'] = pd.to_datetime(df['date'])
print('覆盖日期: ', df.date.min().date(), '~', df.date.max().date())
print()
Run
覆盖日期: 2008-01-25 ~2023-07-26
三、可视化
可视化数据集内英国公司评论记录量(2008.1~2023.7),绘制柱状图。
from plotnine import *
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
#文泉驿微米黑.ttf位于代码同文件夹
font_prop = FontProperties(fname='文泉驿微米黑.ttf')
years = []
volumes = []
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
for date, y_df in df.groupby(pd.Grouper(freq='YE')):
years.append(date.year)
volumes.append(len(y_df))
data = pd.DataFrame({'year': years,
'volume': volumes})
(
ggplot(data, aes(x='year', y='volume'))
+geom_bar(stat='identity')
+labs(title='数据集内英国公司评论记录量(2008.1~2023.7)',
x = '',
y = '')
+geom_text(aes(label = 'volume'), # 添加数据标签
va = 'bottom', # 垂直对齐方式为底部(即在柱子顶部)
size = 8, # 设置字体大小
format_string='{}') # 格式化字符串
+theme(figure_size=(10, 6),
text = element_text(family = font_prop.get_name(), size=14),
plot_title = element_text(family = font_prop.get_name(), size=18)
)
+scale_x_continuous(breaks=range(2008, 2024, 5))
)