• 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&degreefrom=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')

合作项目 : 人工智能专业相关职位数据分析 (爬虫+数据处理)相关推荐

  1. 暑期实训项目(2)--推特爬虫数据处理

    后端数据爬虫--Twitter 1. 爬虫的目标 2. 爬虫的思路 2.1 步骤 2.2 几个选择 2.2.1 Scarpy+ Selenium 2.2.2 没有使用Twitter API 3. 爬虫 ...

  2. 基于pandas、matplotlib、pyecharts的人工智能相关职位招聘市场数据分析

    pandas是python中的数据分析库,matplotlib.pyecharts是python中的数据可视化库. 容大教育人工智能班数据分析阶段实战项目:人工智能相关职位数据分析 小组成员:雷坤.韦 ...

  3. python考研选什么专业好就业_人工智能考研专业就业怎么样 哪些院校开设人工智能专业...

    人工智能:即Artificial Intelligence,简称AI,是一门极富挑战性的科学从事这项工作的人必须懂得计算机.心理学和哲学知识,它由不同的领域组成,如机器学习,计算机视觉等等.,中公考研 ...

  4. 维视智造与英特尔就人工智能教学、人工智能专业配套展开合作

    为更好地推动人工智能与制造业深度融合发展,加速培养人工智能高端人才队伍建设.2020年12月20日,维视智造联手英特尔成功举办了线上"AI Vision全球开发者项目合作计划"启动 ...

  5. 阿里将在雄安新区设3家子公司:涉AI、蚂蚁金服和菜鸟;北航设立全国首个人工智能专业,与百度合作办学...

    北航设立全国首个人工智能专业,与百度合作办学 雷锋网了解到,近日,位于中关村核心区的北京航空航天大学宣布:在该校软件学院设立全国首个人工智能专业.该专业依托北航在软件工程领域强势学科地位,率先以校企深 ...

  6. 【调剂】江苏大学接收调剂研究生,招收具有海洋工程、流体力学、能源动力与工程、流体机械及工程、人工智能等相关专业...

    公众号[计算机与软件考研]每天都会发布最新的计算机考研调剂信息! 点击公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 招生要 ...

  7. 重磅出炉!中国高校人工智能专业综合排名榜单

    文末有干货 "Python高校",马上关注 真爱,请置顶或星标 转载自:图灵人工智能(ID:TuringAI01) THU数据派 进行了再编辑 本文3235字,建议阅读8分钟. 本 ...

  8. CSRankings全球排名第一的清华人工智能专业如何打造?听张钹院士娓娓道来

    在上一个十年里,我们见证了人工智能的「复兴」,见证了人工智能技术对于众多行业的颠覆性变革,也感受到了人工智能对每个人生活的深刻影响.随之而来的,人工智能专业也成为了当前高校中最热门的专业之一. 202 ...

  9. 我们计划招收300名学员,免费攻读人工智能专业!

    [文末领取免费福利] 给大家看一组最新数据. 2018年最新数据:python.大数据.人工智能从业者薪资表 为什么人工智能行业的工资那么高? 无论是科研院所,商业巨头还是初创企业,各行各业都在大力开 ...

最新文章

  1. Find Code for Research Papers
  2. UVa11038 - How Many O's?(统计0的个数)
  3. 站长就是个太监^_^
  4. 开放下载!《ECS运维指南 之 windows系统诊断》
  5. DVT和ADVT - 为数不多的DICOM测试工具说明AND下载
  6. hystrix 单独使用_Hystrix学习
  7. 中国十大穷光蛋排行榜
  8. shell数值大小的比较
  9. SAP License:MTO和MTS的区别
  10. linux下通过伪造udp包来实现指定网卡发送数据
  11. 例4.5 最小公倍数 - 九度教程第48题(最小公倍数)
  12. vue src动态加载请求获取的图片
  13. 计算机电脑配置ppt,计算机应用基础之word2010课件.ppt
  14. 光量子计算机技术突破,真正突破光刻机封锁的技术诞生了!可编程光量子计算芯片是什么?...
  15. Python-进制转换
  16. CvPoint及CvPoint2D32f
  17. 亚马逊鲲鹏系统:批量注册亚马逊买家号软件
  18. win7开机后svchost.exe占用内存的问题解决
  19. FIFO原理及其应用
  20. 【Vue】详解Vue生命周期

热门文章

  1. 权限绕过漏洞(越权漏洞)
  2. 用html和css制作钟表,使用HTML5和CSS3制作简单的钟表
  3. 已解决(转)关于android - apk(解析错误)解析程序包时出现问题
  4. 【计算机三级】网路技术学习笔记 第七章 路由器配置及使用
  5. c++ string转char*
  6. 黑苹果传统BIOS引导安装
  7. nodejs zip 解压zip文件
  8. python检索用人名查电话_ldap3 python搜索组成员并检索其sAMAcountName(Active Directory)...
  9. css中float问题,列表中的css float问题
  10. 用Python写炸金花代码,学习python语言精品案例