知识代码
class JobSalary(object):
job = ''
def __init__(self, city):
self.jobname = "数据分析师"
self.exp = ''
self.city = city
# 方法
def data_normalize(self, data):
print(f'正在规范化{self.city}{data}数据中...')
self.__salary_deal()
self.__exp_deal()
def __salary_deal(self):
print('薪资处理...')
def __exp_deal(self):
print('经验处理...')
if __name__ == '__main__':
job = JobSalary('新乡')
print(job.jobname)
job.data_normalize('薪资')
JobSalary.data_normalize(job, '岗位')
案例实战
案例一:薪资数据处理
class Person:
def __init__(self):
self.name = '子林'
self.age = 18
def eat(self, food):
print(f'{self.name}吃{food}')
class DataSource:
def get_salary_data(self):
data = '''ETL开发工程师,3-5年,本科以上,13000-25000,北京中软国际信息技术有限公司,40.3万次浏览,,北京
ETL开发工程师,2年经验,不限学历,1.2-1.8万/月,东华软件股份公司,20.7万次浏览,,北京
ETL高级开发工程师,5-10年,本科以上,15000-20000,北京九恒星科技股份有限公司,1.4万次浏览,,郑州
大数据ETL资深开发工程师,5-10年,本科以上,30000-60000,北京小桔科技有限公司,124.9万次浏览,,北京
大数据ETL开发工程师-北京-00195,3-4年经验,不限学历,1.2-1.8万/月,北软互联(北京)科技有限公司,3047次浏览,,北京
ETL开发工程师,3-5年,本科以上,13000-25000,北京中软国际信息技术有限公司,40.3万次浏览,,上海
大数据ETL开发工程师-杭州-00197,3-4年经验,不限学历,1.2-1.8万/月,北软互联(北京)科技有限公司,3047次浏览,,杭州
ETL开发工程师,3-5年,大专以上,15000-23000,珠海市卓轩科技有限公司,1.2万次浏览,,北京
BI ETL开发工程师-,2年经验,不限学历,0.8-1.8万/月,东华软件股份公司,20.7万次浏览,,北京
ETL开发工程师,3-4年经验,本科以上,1.5-3万/月,瑞鹏宠物医疗集团股份有限公司,10.7万次浏览,,北京
ETL开发工程师 数据分析师,1-3年,本科以上,12000-25000,深圳索信达数据技术股份有限公司,4.7万次浏览,,北京
ETL BI 工程师-数据实施,1年经验,不限学历,0.8-1.5万/月,北京派可数据科技有限公司,1249次浏览,,深圳
etl开发工程师,3-5年,本科以上,12000-20000元,深圳市法本信息技术股份有限公司,16.5万次浏览,,深圳'''
data_list = data.strip().split('\n')
return data_list
# 包含薪资处理的常用属性,以及规范化处理相关内容
class Salary(object):
# 构造函数,在对象初始化的时候执行
def __init__(self):
# 构造函数内部定义属性()
self.jobname = ''
self.exp = ''
self.degree = ''
self.salary = ''
self.company = ''
self.hit = ''
self.city = ''
# 标识当前数据是否脏数据
self.flag = True
# 针对一行数据规范化
def data_standard(self, line):
# 当前行内容解析
line_list = line.replace(',', ',').split(',')
if len(line_list) != 8:
self.flag = False
return
self.jobname = line_list[0]
self.exp = line_list[1]
self.degree = line_list[2]
self.salary = line_list[3]
self.company = line_list[4]
self.hit = line_list[5]
self.city = line_list[7]
# 经验数据处理
self.deal_exp(self.exp)
# 薪资数据处理
self.deal_salary()
# 点击量处理
self.deal_hit()
# 计算经验平均薪资 3-5年 2年经验 3-4年经验
def calc_exp_avg(self, exp):
exp_avg = 0
if '经验' in exp:
exp = exp.replace('年经验', '')
exp_list = exp.split('-')
if len(exp_list) == 2:
exp_avg = (int(exp_list[0]) + int(exp_list[1])) / 2
else:
exp_avg = int(exp)
else:
exp = exp.replace('年', '')
exp_list = exp.split('-')
exp_avg = (int(exp_list[0]) + int(exp_list[1])) / 2
# print(exp_avg)
return exp_avg
# 根据经验平均值获取标准枚举类型的名称
def get_exp(self, exp_avg):
exp_new = ''
if exp_avg <= 2:
exp_new = '[0-2]'
elif exp_avg > 3 and exp_avg <= 5:
exp_new = '(3-5]'
elif exp_avg > 5:
exp_new = '五年以上'
else:
exp_new = '(2-3]'
return exp_new
# 经验数据处理
def deal_exp(self,expri):