- 1 项目背景
- 2 Scrapy 爬取51job具体信息
- 3 数据清洗
- 3.1 导入csv
- 3.2 处理tags,提取其中有效信息
- 3.2.1 处理tags中数据数目不一致,规整数据信息
- 3.2.2 处理地区信息,提取其中省名
- 3.3 将处理好的tags信息与原数据合并并删除原tags列
- 3.4 处理薪资单位不一致问题,规整为 “/月”
- 3.5 将处理完的数据保存至csv
1 项目背景
当前人工智能的发展愈来愈快,市场需求空间很大,为了分析开设人工智能专业的必要性,开展此项目进行具体的数据分析。通过对智联、51job、中华英才网和拉勾等企业常驻的招聘平台的招聘信息进行数据爬取及数据分析,得到的信息便能较大程度上反映出市场对某职位的需求情况及能力要求 。
2 Scrapy 爬取51job具体信息
- 爬取的工作方向是人工智能,及人工智能下细分方向:机器学习,深度学习,图像识别,人脸识别,NLP,无人驾驶,语音识别,算法研究员
- 主要爬取的内容有工作名称,公司名称,薪水待遇,学历及经验要求,职位描述及需求等具体信息,并保存至csv文件,spider代码如下:
import scrapy
from ..items import FiveoneItem
from scrapy.selector import Selector,HtmlXPathSelector
from scrapy.http import Requestclass JobSpider(scrapy.Spider):name = 'job'# allowed_domains = ['example.com']# 需爬取的内容网页start_urls = ['https://search.51job.com/list/000000,000000,0000,00,9,99,%25E7%25AE%2597%25E6%25B3%2595%25E7%25A0%2594%25E7%25A9%25B6%25E5%2591%2598,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=']def parse(self, response):hxs = Selector(response=response).xpath('//div[@class="el"]')for obj in hxs:detailUrl = obj.xpath('.//a/@href').extract_first()# print(detailUrl)# title = obj.xpath('.//p[@class="t1 "]//a/@title').extract_first()# print(title)yield scrapy.Request(detailUrl, self.detailparse)visited_urls = set()# nextLink = Selector(response=response).xpath('//li[@class="bk"]/a/@href').extract()# 51job下一页链接标签与上一页一致,直接取会因重复导致spider过早关闭无法爬完所有页面,这里改找最后一个标签nextLink = Selector(response=response).xpath('//li[@class="bk"][last()]/a/@href').extract_first()if nextLink is not None:print("*******************下一页链接**************************")print(nextLink)yield scrapy.Request(url=nextLink, callback=self.parse)#爬取详情页具体内容def detailparse(self, response):item = FiveoneItem()hxs = Selector(response=response).xpath('//div[@class="tHeader tHjob"]')for obj in hxs:title = obj.xpath('.//h1/@title').extract_first()item['title'] = titleprint(title)salary = obj.xpath('.//strong/text()').extract_first()item['salary'] = salaryprint(salary)company = obj.xpath('.//p[@class="cname"]/a/@title').extract_first()item['company'] = companyprint(company)tags = obj.xpath('.//p[@class="msg ltype"]/@title').extract_first()item['tags'] = tagsprint(tags)details = Selector(response=response).xpath('//div[@class="bmsg job_msg inbox"]')jobrequest = []for obj in details:detail = obj.xpath('./p/text()').extract()for i in detail:jobrequest.append(i)print(jobrequest)item['jobrequest'] = jobrequestprint('*******************')yield(item)
这里可不编辑pipeline,settings或items,直接采用scrapy自带的持久化功能存储
#存储json格式:
scrapy crawl 项目名称 -o 项目名称.json -s FEED_EXPORT_ENCIDING=utf-8
#存储csv(表格)形式:
scrapy crawl 项目名称 -o 项目名称.csv -s FEED_EXPORT_ENCIDING=utf-8
存储后得到如下文件:
3 数据清洗
import re
import numpy as np
import pandas as pd
import matplotlib as mpl
from pyecharts import Geo
import matplotlib.pyplot as plt
from pyecharts import WordCloud
#用来正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#用来正常显示负号
plt.rcParams['axes.unicode_minus']=False
3.1 导入csv
a=pd.read_csv('aiall.csv')
len(a)
14383 #共14383条数据
#去除无效数据
b = a.dropna()
b.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
company
|
jobrequest
|
salary
|
tags
|
title
|
0
|
北京捷通华声科技股份有限公司
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
0.7-1万/月
|
北京 | 无工作经验 | 本科 | 招3人 | 08-14发布
|
人工智能训练工程师
|
2
|
寰宇优才教育科技(北京)有限公司
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
6-8千/月
|
北京-朝阳区 | 无工作经验 | 招16人 | 08-14发布
|
Java+人工智能实习工程师
|
3
|
广州市润东信息科技有限公司
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
1.5-2万/月
|
广州-番禺区 | 3-4年经验 | 本科 | 招1人 | 08-14发布
|
人工智能工程师
|
4
|
江苏厚学网信息技术股份有限公司
|
岗位职责:,1. 开发软电话模块,完成与终端呼叫设备的对接;,2. 负责模块的需求分析,代码…
|
10-20万/年
|
南京-秦淮区 | 3-4年经验 | 大专 | 招4人 | 08-14发布
|
C++高级开发工程师(人工智能方向)
|
5
|
郑州汇之众网络科技有限公司
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
6-8千/月
|
郑州 | 无工作经验 | 本科 | 招若干人 | 08-14发布
|
零基础人工智能开发实习生
|
len(b)
11834
3.2 处理tags,提取其中有效信息
new_tags = b['tags'].str.split('|')
new_tags.head()
0 [北京 , 无工作经验 , 本科 , 招3人 , 08-14发布]2 [北京-朝阳区 , 无工作经验 , 招16人 , 08-14发布]3 [广州-番禺区 , 3-4年经验 , 本科 , 招1人 , 08-1...4 [南京-秦淮区 , 3-4年经验 , 大专 , 招4人 , 08-1...5 [郑州 , 无工作经验 , 本科 , 招若干人 , 08-14发布]Name: tags, dtype: object
data = new_tags.apply(pd.Series)
data.columns=['地区','经验要求','学历要求','招聘人数','发布日期','额外要求1','额外要求2']
data.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
发布日期
|
额外要求1
|
额外要求2
|
0
|
北京
|
无工作经验
|
本科
|
招3人
|
08-14发布
|
NaN
|
NaN
|
2
|
北京-朝阳区
|
无工作经验
|
招16人
|
08-14发布
|
NaN
|
NaN
|
NaN
|
3
|
广州-番禺区
|
3-4年经验
|
本科
|
招1人
|
08-14发布
|
NaN
|
NaN
|
4
|
南京-秦淮区
|
3-4年经验
|
大专
|
招4人
|
08-14发布
|
NaN
|
NaN
|
5
|
郑州
|
无工作经验
|
本科
|
招若干人
|
08-14发布
|
NaN
|
NaN
|
3.2.1 处理tags中数据数目不一致,规整数据信息
由于部分条目不含学历要求等信息,将这部分提出规整内容并替换为无要求
mask = data.iloc[:,2].str.contains('人')
mask.value_counts()
False 9165True 2669Name: 学历要求, dtype: int64
addclass = data[mask]
addclass.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
发布日期
|
额外要求1
|
额外要求2
|
2
|
北京-朝阳区
|
无工作经验
|
招16人
|
08-14发布
|
NaN
|
NaN
|
NaN
|
9
|
上海-静安区
|
无工作经验
|
招若干人
|
08-14发布
|
NaN
|
NaN
|
NaN
|
14
|
武汉-洪山区
|
无工作经验
|
招6人
|
08-14发布
|
NaN
|
NaN
|
NaN
|
21
|
郑州
|
无工作经验
|
招10人
|
08-14发布
|
NaN
|
NaN
|
NaN
|
28
|
南京
|
无工作经验
|
招1人
|
08-14发布
|
NaN
|
NaN
|
NaN
|
addclass[['发布日期', '招聘人数']] = addclass[['招聘人数', '发布日期']]
addclass[['招聘人数', '学历要求']] = addclass[['学历要求', '招聘人数']]
addclass.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
发布日期
|
额外要求1
|
额外要求2
|
2
|
北京-朝阳区
|
无工作经验
|
NaN
|
招16人
|
08-14发布
|
NaN
|
NaN
|
9
|
上海-静安区
|
无工作经验
|
NaN
|
招若干人
|
08-14发布
|
NaN
|
NaN
|
14
|
武汉-洪山区
|
无工作经验
|
NaN
|
招6人
|
08-14发布
|
NaN
|
NaN
|
21
|
郑州
|
无工作经验
|
NaN
|
招10人
|
08-14发布
|
NaN
|
NaN
|
28
|
南京
|
无工作经验
|
NaN
|
招1人
|
08-14发布
|
NaN
|
NaN
|
fin = addclass.fillna('无要求')
fin.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
发布日期
|
额外要求1
|
额外要求2
|
2
|
北京-朝阳区
|
无工作经验
|
无要求
|
招16人
|
08-14发布
|
无要求
|
无要求
|
9
|
上海-静安区
|
无工作经验
|
无要求
|
招若干人
|
08-14发布
|
无要求
|
无要求
|
14
|
武汉-洪山区
|
无工作经验
|
无要求
|
招6人
|
08-14发布
|
无要求
|
无要求
|
21
|
郑州
|
无工作经验
|
无要求
|
招10人
|
08-14发布
|
无要求
|
无要求
|
28
|
南京
|
无工作经验
|
无要求
|
招1人
|
08-14发布
|
无要求
|
无要求
|
data[mask]=fin
data.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
发布日期
|
额外要求1
|
额外要求2
|
0
|
北京
|
无工作经验
|
本科
|
招3人
|
08-14发布
|
NaN
|
NaN
|
2
|
北京-朝阳区
|
无工作经验
|
无要求
|
招16人
|
08-14发布
|
无要求
|
无要求
|
3
|
广州-番禺区
|
3-4年经验
|
本科
|
招1人
|
08-14发布
|
NaN
|
NaN
|
4
|
南京-秦淮区
|
3-4年经验
|
大专
|
招4人
|
08-14发布
|
NaN
|
NaN
|
5
|
郑州
|
无工作经验
|
本科
|
招若干人
|
08-14发布
|
NaN
|
NaN
|
df= data.fillna('无要求')
df.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
发布日期
|
额外要求1
|
额外要求2
|
0
|
北京
|
无工作经验
|
本科
|
招3人
|
08-14发布
|
无要求
|
无要求
|
2
|
北京-朝阳区
|
无工作经验
|
无要求
|
招16人
|
08-14发布
|
无要求
|
无要求
|
3
|
广州-番禺区
|
3-4年经验
|
本科
|
招1人
|
08-14发布
|
无要求
|
无要求
|
4
|
南京-秦淮区
|
3-4年经验
|
大专
|
招4人
|
08-14发布
|
无要求
|
无要求
|
5
|
郑州
|
无工作经验
|
本科
|
招若干人
|
08-14发布
|
无要求
|
无要求
|
3.2.2 处理地区信息,提取其中省名
df['地区'] = df['地区'].str.split('-').str[0]
df.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
发布日期
|
额外要求1
|
额外要求2
|
0
|
北京
|
无工作经验
|
本科
|
招3人
|
08-14发布
|
无要求
|
无要求
|
2
|
北京
|
无工作经验
|
无要求
|
招16人
|
08-14发布
|
无要求
|
无要求
|
3
|
广州
|
3-4年经验
|
本科
|
招1人
|
08-14发布
|
无要求
|
无要求
|
4
|
南京
|
3-4年经验
|
大专
|
招4人
|
08-14发布
|
无要求
|
无要求
|
5
|
郑州
|
无工作经验
|
本科
|
招若干人
|
08-14发布
|
无要求
|
无要求
|
3.3 将处理好的tags信息与原数据合并并删除原tags列
result = b.join(df)
result.drop('tags', axis=1, inplace=True)
result = result[['title','company','salary','地区','经验要求','学历要求','招聘人数','额外要求1','额外要求2','jobrequest','发布日期']]
result.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
salary
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
额外要求1
|
额外要求2
|
jobrequest
|
发布日期
|
0
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司
|
0.7-1万/月
|
北京
|
无工作经验
|
本科
|
招3人
|
无要求
|
无要求
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
08-14发布
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
6-8千/月
|
北京
|
无工作经验
|
无要求
|
招16人
|
无要求
|
无要求
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
3
|
人工智能工程师
|
广州市润东信息科技有限公司
|
1.5-2万/月
|
广州
|
3-4年经验
|
本科
|
招1人
|
无要求
|
无要求
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
08-14发布
|
4
|
C++高级开发工程师(人工智能方向)
|
江苏厚学网信息技术股份有限公司
|
10-20万/年
|
南京
|
3-4年经验
|
大专
|
招4人
|
无要求
|
无要求
|
岗位职责:,1. 开发软电话模块,完成与终端呼叫设备的对接;,2. 负责模块的需求分析,代码…
|
08-14发布
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
6-8千/月
|
郑州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
result.info()
<class 'pandas.core.frame.DataFrame'>Int64Index: 11834 entries, 0 to 14379Data columns (total 11 columns):title 11834 non-null objectcompany 11834 non-null objectsalary 11834 non-null object地区 11834 non-null object经验要求 11834 non-null object学历要求 11834 non-null object招聘人数 11834 non-null object额外要求1 11834 non-null object额外要求2 11834 non-null objectjobrequest 11834 non-null object发布日期 11834 non-null objectdtypes: object(11)memory usage: 1.4+ MB
3.4 处理薪资单位不一致问题,规整为 “/月”
这里的问题比较复杂,因51job提供的薪资单位有 万/年,万/月,千/月,元/日,元/时等多种单位,这里由于按日和按时计算的不清具体工作时长,取 万/年,万/月,千/月统一化为月薪来进行数据处理 并添加最低月薪,平均月薪,最高月薪字段
mask = result['salary'].str.contains('年')
year_salary = result[mask]
month_salary = result[~mask]
year_salary.salary
4 10-20万/年
6 8-18万/年
60 30-50万/年
63 15-60万/年
71 40-60万/年
79 10-15万/年
102 15-20万/年
115 30-60万/年
143 20-30万/年
150 15-20万/年
164 40-50万/年
174 30-40万/年
179 24-42万/年
181 15-20万/年
190 50-60万/年
202 30-50万/年
224 30-40万/年
236 35-50万/年
241 40-50万/年
258 12-30万/年
261 10-30万/年
294 20-30万/年
333 20-30万/年
336 30-40万/年
344 30-40万/年
346 20-25万/年
358 15-20万/年
389 30-40万/年
396 15-20万/年
398 20-30万/年... Name: salary, Length: 831, dtype: object
y_s = year_salary['salary'].str.split('万')
y_s = y_s.apply(pd.Series)
y_s = y_s[0].str.split('-').apply(pd.Series)
y_s = y_s.astype(float)
y_salary = y_s.mean(axis=1)*10000/12
min_salary_y = y_s[0]*10000/12
min_salary_y
4 8333.333333
6 6666.666667
60 25000.000000
63 12500.000000
71 33333.333333
79 8333.333333
102 12500.000000
115 25000.000000
143 16666.666667
150 12500.000000
164 33333.333333
174 25000.000000
179 20000.000000
181 12500.000000
190 41666.666667
202 25000.000000
224 25000.000000
236 29166.666667
241 33333.333333
258 10000.000000
261 8333.333333
294 16666.666667
333 16666.666667
336 25000.000000
344 25000.000000
346 16666.666667
358 12500.000000
389 25000.000000
396 12500.000000
398 16666.666667... Name: 0, Length: 831, dtype: float64
max_salary_y = y_s[1]*10000/12
max_salary_y
4 16666.666667
6 15000.000000
60 41666.666667
63 50000.000000
71 50000.000000
79 12500.000000
102 16666.666667
115 50000.000000
143 25000.000000
150 16666.666667
164 41666.666667
174 33333.333333
179 35000.000000
181 16666.666667
190 50000.000000
202 41666.666667
224 33333.333333
236 41666.666667
241 41666.666667
258 25000.000000
261 25000.000000
294 25000.000000
333 25000.000000
336 33333.333333
344 33333.333333
346 20833.333333
358 16666.666667
389 33333.333333
396 16666.666667
398 25000.000000... Name: 1, Length: 831, dtype: float64
year_salary.salary = y_salary
result[mask] = year_salary
result['min_salary'] = min_salary_y
result['max_salary'] = max_salary_y
result.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
salary
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
额外要求1
|
额外要求2
|
jobrequest
|
发布日期
|
min_salary
|
max_salary
|
0
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司
|
0.7-1万/月
|
北京
|
无工作经验
|
本科
|
招3人
|
无要求
|
无要求
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
08-14发布
|
NaN
|
NaN
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
6-8千/月
|
北京
|
无工作经验
|
无要求
|
招16人
|
无要求
|
无要求
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
NaN
|
NaN
|
3
|
人工智能工程师
|
广州市润东信息科技有限公司
|
1.5-2万/月
|
广州
|
3-4年经验
|
本科
|
招1人
|
无要求
|
无要求
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
08-14发布
|
NaN
|
NaN
|
4
|
C++高级开发工程师(人工智能方向)
|
江苏厚学网信息技术股份有限公司
|
12500
|
南京
|
3-4年经验
|
大专
|
招4人
|
无要求
|
无要求
|
岗位职责:,1. 开发软电话模块,完成与终端呼叫设备的对接;,2. 负责模块的需求分析,代码…
|
08-14发布
|
8333.333333
|
16666.666667
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
6-8千/月
|
郑州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
NaN
|
NaN
|
mask1 = month_salary.salary.str.contains('万')
wan = month_salary[mask1]
qian = month_salary[~mask1]
wan_s = wan['salary'].str.split('万')
wan_s = wan_s.apply(pd.Series)
wan_s = wan_s[0].str.split('-').apply(pd.Series)
wan_s = wan_s.astype(float)
mon_salary1 = wan_s.mean(axis=1)*10000
mon_salary1
0 8500.0
3 17500.0
8 8500.0
9 35000.0
12 13500.0
13 45000.0
15 8000.0
16 40000.0
20 9000.0
24 22500.0
25 12500.0
27 17500.0
30 35000.0
31 12500.0
32 12500.0
34 9000.0
35 9000.0
37 22500.0
38 12500.0
41 11500.0
43 15000.0
45 15000.0
48 17500.0
49 17500.0
52 20000.0
53 22500.0
54 24000.0
55 17500.0
56 15000.0
57 22500.0... Length: 8055, dtype: float64
wan['salary'] = mon_salary1
month_salary[mask1] = wan
month_salary.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
salary
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
额外要求1
|
额外要求2
|
jobrequest
|
发布日期
|
0
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司
|
8500
|
北京
|
无工作经验
|
本科
|
招3人
|
无要求
|
无要求
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
08-14发布
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
6-8千/月
|
北京
|
无工作经验
|
无要求
|
招16人
|
无要求
|
无要求
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
3
|
人工智能工程师
|
广州市润东信息科技有限公司
|
17500
|
广州
|
3-4年经验
|
本科
|
招1人
|
无要求
|
无要求
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
08-14发布
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
6-8千/月
|
郑州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
7
|
人工智能训练师
|
北京捷通华声科技股份有限公司广州分公司
|
5-8千/月
|
广州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;,2.收集客户的产品与服务知识库…
|
08-14发布
|
min_wan = wan_s[0]*10000
max_wan = wan_s[1]*10000
month_salary['min_salary'] = min_wan
month_salary['max_salary'] = max_wan
month_salary.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
salary
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
额外要求1
|
额外要求2
|
jobrequest
|
发布日期
|
min_salary
|
max_salary
|
0
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司
|
8500
|
北京
|
无工作经验
|
本科
|
招3人
|
无要求
|
无要求
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
08-14发布
|
7000.0
|
10000.0
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
6-8千/月
|
北京
|
无工作经验
|
无要求
|
招16人
|
无要求
|
无要求
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
NaN
|
NaN
|
3
|
人工智能工程师
|
广州市润东信息科技有限公司
|
17500
|
广州
|
3-4年经验
|
本科
|
招1人
|
无要求
|
无要求
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
08-14发布
|
15000.0
|
20000.0
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
6-8千/月
|
郑州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
NaN
|
NaN
|
7
|
人工智能训练师
|
北京捷通华声科技股份有限公司广州分公司
|
5-8千/月
|
广州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;,2.收集客户的产品与服务知识库…
|
08-14发布
|
NaN
|
NaN
|
mask2 = qian['salary'].str.contains('千')
qian1 = qian[mask2]
day = qian[~mask2]
qian_s = qian1['salary'].str.split('千')
qian_s = qian_s.apply(pd.Series)
qian_s = qian_s[0].str.split('-').apply(pd.Series)
qian_s = qian_s.astype(float)
mon_salary2 = qian_s.mean(axis=1)*1000
qian1['salary'] = mon_salary2
qian[mask2] = qian1
month_salary[~mask1] = qian
min_qian = qian_s[0]*1000
max_qian = qian_s[1]*1000
mask5 = month_salary['min_salary'].isnull()
mon_qian = month_salary[mask5]
mon_qian.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
salary
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
额外要求1
|
额外要求2
|
jobrequest
|
发布日期
|
min_salary
|
max_salary
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
7000
|
北京
|
无工作经验
|
无要求
|
招16人
|
无要求
|
无要求
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
NaN
|
NaN
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
7000
|
郑州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
NaN
|
NaN
|
7
|
人工智能训练师
|
北京捷通华声科技股份有限公司广州分公司
|
6500
|
广州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;,2.收集客户的产品与服务知识库…
|
08-14发布
|
NaN
|
NaN
|
10
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司成都分公司
|
6500
|
成都
|
无工作经验
|
本科
|
招1人
|
无要求
|
无要求
|
职位描述:,1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;,2.收集客户的产品…
|
08-14发布
|
NaN
|
NaN
|
11
|
AI人工智能电话销售专员
|
武汉智生粉科技有限公司
|
7000
|
武汉
|
1年经验
|
大专
|
招5人
|
无要求
|
无要求
|
本公司是做AI电销机器人的,智能语音,为企业节约人力财力,更好的寻找客户,目前有很大的发展空…
|
08-14发布
|
NaN
|
NaN
|
mon_qian['min_salary'] = min_qian
mon_qian['max_salary'] = max_qian
month_salary[mask5] = mon_qian
month_salary.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
salary
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
额外要求1
|
额外要求2
|
jobrequest
|
发布日期
|
min_salary
|
max_salary
|
0
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司
|
8500
|
北京
|
无工作经验
|
本科
|
招3人
|
无要求
|
无要求
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
08-14发布
|
7000.0
|
10000.0
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
7000
|
北京
|
无工作经验
|
无要求
|
招16人
|
无要求
|
无要求
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
6000.0
|
8000.0
|
3
|
人工智能工程师
|
广州市润东信息科技有限公司
|
17500
|
广州
|
3-4年经验
|
本科
|
招1人
|
无要求
|
无要求
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
08-14发布
|
15000.0
|
20000.0
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
7000
|
郑州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
6000.0
|
8000.0
|
7
|
人工智能训练师
|
北京捷通华声科技股份有限公司广州分公司
|
6500
|
广州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;,2.收集客户的产品与服务知识库…
|
08-14发布
|
5000.0
|
8000.0
|
result[~mask] = month_salary
result.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
salary
|
地区
|
经验要求
|
学历要求
|
招聘人数
|
额外要求1
|
额外要求2
|
jobrequest
|
发布日期
|
min_salary
|
max_salary
|
0
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司
|
8500
|
北京
|
无工作经验
|
本科
|
招3人
|
无要求
|
无要求
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
08-14发布
|
7000.000000
|
10000.000000
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
7000
|
北京
|
无工作经验
|
无要求
|
招16人
|
无要求
|
无要求
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
6000.000000
|
8000.000000
|
3
|
人工智能工程师
|
广州市润东信息科技有限公司
|
17500
|
广州
|
3-4年经验
|
本科
|
招1人
|
无要求
|
无要求
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
08-14发布
|
15000.000000
|
20000.000000
|
4
|
C++高级开发工程师(人工智能方向)
|
江苏厚学网信息技术股份有限公司
|
12500
|
南京
|
3-4年经验
|
大专
|
招4人
|
无要求
|
无要求
|
岗位职责:,1. 开发软电话模块,完成与终端呼叫设备的对接;,2. 负责模块的需求分析,代码…
|
08-14发布
|
8333.333333
|
16666.666667
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
7000
|
郑州
|
无工作经验
|
本科
|
招若干人
|
无要求
|
无要求
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
6000.000000
|
8000.000000
|
result.salary = result.salary.astype(str)
mask4 = result.salary.str.contains('元')
mask4.value_counts()
False 11741True 93Name: salary, dtype: int64
result = result[~mask4]
result.salary = result.salary.astype(float)
result.rename(columns={'salary':'ave_salary','地区':'workspace','经验要求':'experienceRequirement','学历要求':'educationRequirement','招聘人数':'recruits','jobrequest':'jobRequirement','发布日期':'publishTime'},inplace=True)
result.drop(['额外要求1','额外要求2'], axis=1, inplace=True)
result.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
ave_salary
|
workspace
|
experienceRequirement
|
educationRequirement
|
recruits
|
jobRequirement
|
publishTime
|
min_salary
|
max_salary
|
0
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司
|
8500.0
|
北京
|
无工作经验
|
本科
|
招3人
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
08-14发布
|
7000.000000
|
10000.000000
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
7000.0
|
北京
|
无工作经验
|
无要求
|
招16人
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
6000.000000
|
8000.000000
|
3
|
人工智能工程师
|
广州市润东信息科技有限公司
|
17500.0
|
广州
|
3-4年经验
|
本科
|
招1人
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
08-14发布
|
15000.000000
|
20000.000000
|
4
|
C++高级开发工程师(人工智能方向)
|
江苏厚学网信息技术股份有限公司
|
12500.0
|
南京
|
3-4年经验
|
大专
|
招4人
|
岗位职责:,1. 开发软电话模块,完成与终端呼叫设备的对接;,2. 负责模块的需求分析,代码…
|
08-14发布
|
8333.333333
|
16666.666667
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
7000.0
|
郑州
|
无工作经验
|
本科
|
招若干人
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
6000.000000
|
8000.000000
|
result = result[['title','company','min_salary','ave_salary','max_salary','workspace','experienceRequirement','educationRequirement','recruits','jobRequirement','publishTime']]
result.head()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
|
title
|
company
|
min_salary
|
ave_salary
|
max_salary
|
workspace
|
experienceRequirement
|
educationRequirement
|
recruits
|
jobRequirement
|
publishTime
|
0
|
人工智能训练工程师
|
北京捷通华声科技股份有限公司
|
7000.000000
|
8500.0
|
10000.000000
|
北京
|
无工作经验
|
本科
|
招3人
|
职位描述:, 1.负责智能机器人知识库的建设,保证机器人智能问答的准确率;…
|
08-14发布
|
2
|
Java+人工智能实习工程师
|
寰宇优才教育科技(北京)有限公司
|
6000.000000
|
7000.0
|
8000.000000
|
北京
|
无工作经验
|
无要求
|
招16人
|
【岗位方向】:,1、 Java+大数据软件开发工程师实习生,2、 人工智能+Python开发…
|
08-14发布
|
3
|
人工智能工程师
|
广州市润东信息科技有限公司
|
15000.000000
|
17500.0
|
20000.000000
|
广州
|
3-4年经验
|
本科
|
招1人
|
1. 研究机器学习、深度学习等领域的前沿技术并结合业务场景解决实际问题;,2. 通过对数据的…
|
08-14发布
|
4
|
C++高级开发工程师(人工智能方向)
|
江苏厚学网信息技术股份有限公司
|
8333.333333
|
12500.0
|
16666.666667
|
南京
|
3-4年经验
|
大专
|
招4人
|
岗位职责:,1. 开发软电话模块,完成与终端呼叫设备的对接;,2. 负责模块的需求分析,代码…
|
08-14发布
|
5
|
零基础人工智能开发实习生
|
郑州汇之众网络科技有限公司
|
6000.000000
|
7000.0
|
8000.000000
|
郑州
|
无工作经验
|
本科
|
招若干人
|
1、热爱编程事业,热衷IT行业;, 2、本科以上学历,计算机及理工类专业优先;, 3、认真遵…
|
08-14发布
|
3.5 将处理完的数据保存至csv
result.to_csv('ai.csv')
合作项目 : 人工智能专业相关职位数据分析 (爬虫+数据处理)相关推荐
- 暑期实训项目(2)--推特爬虫数据处理
后端数据爬虫--Twitter 1. 爬虫的目标 2. 爬虫的思路 2.1 步骤 2.2 几个选择 2.2.1 Scarpy+ Selenium 2.2.2 没有使用Twitter API 3. 爬虫 ...
- 基于pandas、matplotlib、pyecharts的人工智能相关职位招聘市场数据分析
pandas是python中的数据分析库,matplotlib.pyecharts是python中的数据可视化库. 容大教育人工智能班数据分析阶段实战项目:人工智能相关职位数据分析 小组成员:雷坤.韦 ...
- python考研选什么专业好就业_人工智能考研专业就业怎么样 哪些院校开设人工智能专业...
人工智能:即Artificial Intelligence,简称AI,是一门极富挑战性的科学从事这项工作的人必须懂得计算机.心理学和哲学知识,它由不同的领域组成,如机器学习,计算机视觉等等.,中公考研 ...
- 维视智造与英特尔就人工智能教学、人工智能专业配套展开合作
为更好地推动人工智能与制造业深度融合发展,加速培养人工智能高端人才队伍建设.2020年12月20日,维视智造联手英特尔成功举办了线上"AI Vision全球开发者项目合作计划"启动 ...
- 阿里将在雄安新区设3家子公司:涉AI、蚂蚁金服和菜鸟;北航设立全国首个人工智能专业,与百度合作办学...
北航设立全国首个人工智能专业,与百度合作办学 雷锋网了解到,近日,位于中关村核心区的北京航空航天大学宣布:在该校软件学院设立全国首个人工智能专业.该专业依托北航在软件工程领域强势学科地位,率先以校企深 ...
- 【调剂】江苏大学接收调剂研究生,招收具有海洋工程、流体力学、能源动力与工程、流体机械及工程、人工智能等相关专业...
公众号[计算机与软件考研]每天都会发布最新的计算机考研调剂信息! 点击公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 招生要 ...
- 重磅出炉!中国高校人工智能专业综合排名榜单
文末有干货 "Python高校",马上关注 真爱,请置顶或星标 转载自:图灵人工智能(ID:TuringAI01) THU数据派 进行了再编辑 本文3235字,建议阅读8分钟. 本 ...
- CSRankings全球排名第一的清华人工智能专业如何打造?听张钹院士娓娓道来
在上一个十年里,我们见证了人工智能的「复兴」,见证了人工智能技术对于众多行业的颠覆性变革,也感受到了人工智能对每个人生活的深刻影响.随之而来的,人工智能专业也成为了当前高校中最热门的专业之一. 202 ...
- 我们计划招收300名学员,免费攻读人工智能专业!
[文末领取免费福利] 给大家看一组最新数据. 2018年最新数据:python.大数据.人工智能从业者薪资表 为什么人工智能行业的工资那么高? 无论是科研院所,商业巨头还是初创企业,各行各业都在大力开 ...
最新文章
- Find Code for Research Papers
- UVa11038 - How Many O's?(统计0的个数)
- 站长就是个太监^_^
- 开放下载!《ECS运维指南 之 windows系统诊断》
- DVT和ADVT - 为数不多的DICOM测试工具说明AND下载
- hystrix 单独使用_Hystrix学习
- 中国十大穷光蛋排行榜
- shell数值大小的比较
- SAP License:MTO和MTS的区别
- linux下通过伪造udp包来实现指定网卡发送数据
- 例4.5 最小公倍数 - 九度教程第48题(最小公倍数)
- vue src动态加载请求获取的图片
- 计算机电脑配置ppt,计算机应用基础之word2010课件.ppt
- 光量子计算机技术突破,真正突破光刻机封锁的技术诞生了!可编程光量子计算芯片是什么?...
- Python-进制转换
- CvPoint及CvPoint2D32f
- 亚马逊鲲鹏系统:批量注册亚马逊买家号软件
- win7开机后svchost.exe占用内存的问题解决
- FIFO原理及其应用
- 【Vue】详解Vue生命周期
热门文章
- 权限绕过漏洞(越权漏洞)
- 用html和css制作钟表,使用HTML5和CSS3制作简单的钟表
- 已解决(转)关于android - apk(解析错误)解析程序包时出现问题
- 【计算机三级】网路技术学习笔记 第七章 路由器配置及使用
- c++ string转char*
- 黑苹果传统BIOS引导安装
- nodejs zip 解压zip文件
- python检索用人名查电话_ldap3 python搜索组成员并检索其sAMAcountName(Active Directory)...
- css中float问题,列表中的css float问题
- 用Python写炸金花代码,学习python语言精品案例