
物流行业高需求岗位为“仓储管理”“运输调度”“运输调度员”,薪资水平集中在8-15K区间;按学历分组,本科岗位薪资中位数约12K,大专约9K;按城市分组,成都岗位薪资中位数11K,重庆约10K。这些信息可为就业指导提供岗位推荐(优先高需求岗位)和薪资预期(考虑学历、城市差异),助力求职者精准规划职业路径。
数据清洗是分析的基础,需解决数据质量问题。核心步骤包括数据类型转换(确保数值型数据可计算,分类变量可分析)、缺失值处理(填补或删除)、异常值处理(识别并修正不合理数据),以及特征提取(从清洗后数据中提取关键信息)。
| 方法 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 删除行/列 | 直接移除含缺失值的行/列 | 简单,损失信息 | 缺失比例低,列不重要 | 数据量减少,可能遗漏关键信息 |
| 均值/中位数填充 | 用列均值/中位数替换缺失值 | 简单,保留分布 | 缺失值随机分布,数据正态 | 可能平滑真实分布(如薪资偏态时用中位数) |
| KNN填充 | 根据邻近样本填充 | 复杂,需计算距离 | 缺失比例高,数据相关性强 | 计算成本高,需选择合适邻居数 |
| 方法 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| IQR法 | 用四分位距识别离群点 | 直观,基于分位数 | 数值型数据 | 对极端值敏感,需结合业务判断(如高薪岗位是否合理) |
| Z-score法 | 计算数据与均值的偏离程度( | z | >3为异常) | 简单,基于正态分布 |
假设数据存储在SQL表job_data(字段:job_name、salary(字符串,如“12K”)、location、education(文本,如“本科”),处理步骤如下:
数据类型转换:
df['salary'] = df['salary'].str.replace('K', '').astype(float) * 1000
df['education'] = df['education'].map({'本科': 1, '大专': 0, '硕士': 2})
处理缺失值:
df['salary'].fillna(df['salary'].median(), inplace=True)
df['education'].fillna(df['education'].mode()[0], inplace=True)
处理异常值(薪资):
q1 = df['salary'].quantile(0.25)
q3 = df['salary'].quantile(0.75)
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
df = df[(df['salary'] >= lower_bound) & (df['salary'] <= upper_bound)]
删除重复记录(关键步骤,避免统计偏差):
df.drop_duplicates(inplace=True)
多维度特征提取:
top_jobs = df['job_name'].value_counts().head(3)
print("高需求岗位:", top_jobs)
salary_by_edu = df.groupby('education')['salary'].describe()
print("按学历分组薪资:", salary_by_edu)
salary_by_city = df.groupby('location')['salary'].median()
print("按城市分组中位数薪资:", salary_by_city)
面试官您好,针对物流行业就业数据,我通过Python和SQL进行了数据清洗与分析。首先处理了数据类型转换,将薪资列从字符串(如“12K”)转为数值型(12000),学历列转为分类变量(如“本科”编码为1)。然后处理缺失值:薪资用中位数填充(避免极端值影响均值),学历用众数填充(“本科”占比约60%,是主要学历要求)。接着检测并处理薪资异常值(用IQR方法识别离群点并删除,保留3K-25K的合理范围)。之后提取关键特征:高需求岗位是“仓储管理”“运输调度”“运输调度员”,薪资集中在8-15K区间;按学历分组,本科岗位薪资中位数约12K,大专约9K;按城市分组,成都岗位薪资中位数11K,重庆约10K。这些分析为就业指导提供了岗位推荐(优先考虑高需求岗位)和薪资预期(考虑学历、城市差异),帮助求职者更精准规划职业路径,比如本科毕业生可优先关注成都的仓储管理岗位,预期薪资12K左右。
问1:处理缺失值时,为什么选择中位数而非均值?
答:薪资数据可能存在偏态分布(如少数高薪岗位拉高均值),中位数更能代表中间水平,避免极端值对统计结果的影响。
问2:如何判断薪资异常值?
答:使用IQR方法,计算四分位距(Q3-Q1),超出Q1-1.5IQR或Q3+1.5IQR的值为异常值(如薪资低于3K或高于25K的记录)。
问3:数据清洗后,是否验证了结果合理性?
答:填充缺失值后,检查薪资分布的偏态是否仍合理(如中位数与均值差距是否缩小);异常值处理后,确认数据分布更集中,无极端离群点。
问4:如果数据中有重复记录,如何处理?
答:删除重复行(drop_duplicates()),确保数据唯一性,避免统计结果(如岗位频率、薪资均值)因重复记录被夸大。
问5:特征提取中,多维度分析(学历/城市)的具体方法?
答:通过分组统计(如groupby),计算各组的薪资描述统计(中位数、均值),直观展示不同群体间的薪资差异。