(一) 问题描述
待处理的数据集如下图所示, 很明显薪酬一栏为字符串类型, 而这样我们无法对其进行数学运算, 所以我们应当将薪酬一列转为数字类型, 且利用薪酬列的年薪计算出每月的平均工资
(二) 解决方案
import pandas as pd# 导入数据集
df = pd.read_csv('E:/Code/数据分析/data/InputData/zhilian_data.csv')# 分割字符串 字符串类型转数字类型
df['薪酬'] = df['薪酬'].str.split('万').str.get(0)
year_money1 = df['薪酬'].str.split('-').str.get(0).astype(float)
year_money2 = df['薪酬'].str.split('-').str.get(1).astype(float)# 求年薪的平均薪资并保留整数
df['薪酬']=((year_money1+year_money2)/2*10000).round(0)
注意 : 在此之前需要保证薪酬列都是 xx-xx万 这样的格式, 如果仍存在 “面议” 或 NaN 这样的情况需要先对薪酬列的数值进行清洗。
(三) 参考思路
1.使用 .str.split() 方法分割字符串 遇到 “万” 则分割一次 共分割成两个部分
2.取下标为0的那个部分, 并将其替换薪酬列的原数据
3.使用 .str.split() 方法分割字符串 遇到 “-” 则分割一次 共分割成二个部分 取下标为0和下标为1的部分 使用 .atype()方法将其转为数字类型
4.计算月薪并使用 round()方法保留整数 并用计算结果替换薪酬列原数据