广州房价与数据分析岗薪资分析

项目背景
作为一名应届生,在本科期间也已经学过部分数据分析的内容,在临近毕业找工作时,也将一些技能重新复习一遍,做一个练手项目,包括使用python进行数据的爬取,以及使用excel进行数据的清洗与分析。
 
项目目的
通过这些数据来了解对数据分析岗在广州的一些情况,主要有以下几个问题:
数据分析岗的需求在广州的分布情况;
数据分析岗的薪资分布情况;
广州市场对数据分析岗的工作经验要求情况;
工作经验对薪资起到怎么样的影响;
广州各区域的房价情况;
广州房源数量与价格分布情况;
广州的房价与数据分析岗的薪资关系。
 
技术和工具:
本项目分为数据爬取和数据分析,数据爬去是基于python,使用Requests、BeautifulSoup等库对网页进行爬取。
数据分析主要使用excel进行清晰与分析,并通过数据透视图表来进行数据可视化,并得出分析结果。
 
数据的爬取-招聘网站
通过前程无忧可以看到,通过该页面,可以获取到职位名称、公司名称、 公司位置、薪资范围等信息,抓取完后写入excel中,等待进一步处理。
相关代码:
 1 def getname_com(arr):
 2     info = []
 3     linkinfo = []
 4     for i in arr:
 5         info.append(i.string)
 6         linkinfo.append(i.get('href'))
 7         Info = info[4:105]
 8     namearr = Info[1::2]
 9     companyarr = Info[2::2]
10     link = linkinfo[5:105:2]
11     for i in range(len(namearr)):
12         namearr[i] = namearr[i].replace(' ', '')[2:]
13     return namearr, companyarr, link
14 
15 url = "https://search.51job.com/list/030200,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE%25E5%2" \"588%2586%25E6%259E%2590,2," + str(page) + ".html?lang=c&stype=1&postchannel=0000&workyear=99&cotype=99&degreefrom" \
16 "=99&jobterm=99&companysize=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0" \"&address=&line=&specialarea=00&from=&welfare="
17 html = requests.get(url)
18 html.encoding = 'utf-8'
19 soup = bs(html.content, "html.parser")
20 name_c = soup.find_all("a", {"target": "_blank"})  # 名称和公司
21 name, company, link = getname_com(name_c)

从获取到的网址中,再次解析获得工作经验的需求信息

 1 def getexp(arr):
 2     info = []
 3     exp = []
 4     for url in arr:
 5         try:
 6             html = requests.get(url)
 7             soup = bs(html.content, "html.parser",from_encoding="GBK")
 8             info.append(soup.find_all("p", {"class": "msg ltype"}))
 9         except:
10             print("come in")
11             info.append("</span>无效地址<span>")
12             pass
13     for i in info:
14         i = str(i)
15         print(i)
16         try:
17             exp.append(re.findall(r"</span>(.*?)<span>", i)[0])
18         except:
19             exp.append("嘻嘻")    # 方便后期查错
20     return exp
21 exp = getexp(link)

最终获得数据:

数据的爬取-链家网

获取房价信息,房价信息通过链家网的网页获得,其中可分地区搜索房源,故为了划分区域,项目中不抓取详细地址,而是按照网页上的区域搜索结果进行按批存储。
 1 '''通过解析过的内容进行信息的提取'''
 2 def getname(namelist):
 3     name1 = []
 4     for i in namelist:
 5         i = str(i)
 6         name1.extend(re.findall(r">(.*)<", i))
 7     return name1
 8 '''分区域进行搜索,获取搜索结果页数'''
 9 llist = ['nansha','liwan', 'yuexiu', 'haizhu', 'tianhe', 'baiyun', 'huangpugz', 'panyu', 'huadou', 'zengcheng', 'conghua']
10 for ll in llist:
11 u = r"https://gz.fang.lianjia.com/loupan/" + ll + "/pg"     #分批搜索
12 html = requests.get(u).text
13 soup = bs(html, "html.parser")
14 maxnum.extend(soup.select(".page-box"))     #获取页数
15 totalpage = math.ceil(int(str(maxnum[0]).split('"')[-2])/10)
16 while page != totalpage + 1:
17     url = u + str(page)
18     html = requests.get(url).text
19     soup = bs(html, "html.parser")
20     name.extend(getname(soup.findAll("a", {'class': 'name'})))     #提取楼盘名字
21     # location.extend(getloca(soup.select(".resblock-location span")))
22     price.extend(getname(soup.select(".main-price span")))     #提取价格
23     area.extend(getarea(soup.select(".resblock-area span")))     #提取规格大小
24     page += 1

同样地将数据写入excel中,等待处理。

数据的清洗

 1、通过筛选检查,可发现存在按套算和按平算的区别,为统一单位,将按套算的数据筛选出来,以房子的规格为标准,将又按照套装计算并且没有给出房子规格的房子删除,毕竟影响计算且也占少数,剩下的即可计算出按平算的价格是多少。
 
2、有部分房源的价格是待定的,这个我们将使用其余价格的平均值代替,
3、使用vlookup函数,将区域的拼音转化为文字。需要现将区域列的唯一值提取出来,再做对应关系的替换,隐藏其他不需要的列。

4、至此就清理完毕,总共抓取了573条房源信息,其中包含有效数据569条,其中规格大小虽然部分缺失,但也没有怎么影响到价格,部分被影响的信息也是很少,做删除处理也对最后结果不会产生太大的影响。

职位信息清洗
1、求得平均薪资。将薪资范围拆分为最低与最高,并且根据日薪、月薪和年薪的区别,设立不同的计算方式。

2、使用vlookup函数将工作做经验与平均薪资划分区间。

3、发现有部分位置信息是空白的,由于直接看公司名称也不能发现位置信息,所以位置的缺失值将使用出现最多的“天河区”进行代替,至此,职位信息的数据清洗完毕,总共抓取了723条数据,有效数据722条,缺失值都可以得到一定的处理,数据越多,对分析也越有好处,其中发现从化只有一条数据,并不能代表从化的平均薪资水平,所以将从化的职位信息删除,对应的,也将房源信息的从化部分数据删除。

地域性分布

 

在前程无忧上,有58%的数据分析岗需求都集中在天河区,其次是白云、海珠,南沙和增城最少。考虑到天河区是广州市新城市中心区,拥有多层次的城市交通体系,在这里的企业数量也自然增多,不缺乏大公司,同时小公司的数量也是比其他区多得多。
结论:数据分析岗的大部分工作机会集中在天河区,同时竞争也会更加激烈,想往这方面发展的话,可考虑在天河区尝试,另一个方面,其他区的需求较小,竞争也比较小,考虑到其他消费水平、补贴等因素,其他区也未必不是一个好选择。
 
总体薪酬情况
 

数据分析岗的薪资大多数集中在5~15k/月,有少数能达到25k以上,总体来看,数据分析岗的薪资待遇还是不错的,由于统计的是平均薪资,实际应该会比图中的 情况更好一点。

 
不同区域的薪资分布情况

从删除了离群点的箱型图来看,基本还是和总体的薪资分布情况差不多,比较集中,中位数大约都处在7k左右,但高薪资的情况也还是有的的,薪资的分布还与工作经验要求有关系。

工作经验与薪资分布

 
工作经验的需求符合正态分布,工作1~2年的需求量比较大,其次是没有工作经验的新人,5年以上的需求量不比较少。图中还可以看出,随着工作经验的增长,薪资水平也是呈现一个上升的趋势,我们可以简单做一个结论:
1、数据分析的入门难度其实不大,部分公司对数据分析师的概念可能会有混淆,一职多能的情况常有出现。
2、3~4年时薪资水平增高,该阶段的数据分析师在竞争开始激烈的同时,也需要有更强的技能去拿到高薪资和面对竞争,可以理解为瓶颈期
 
各区域房价分布情况

处于市中心的天河区理所当然的登榜首,离不开其丰富的交通体系,各方面的资源都比较齐全,也创造了更多的就业机会。

 
 房源数量与价格分布情况
 
可以看出,增城、南岔、花都等离市中心较远的区域,在房价更便宜的同时,还有大量的空房可以选择,是不错的购房选择。老城区越秀区则基本开发完毕,其房价也居高不下。
 
工作薪资与房价分布
 
从图中的线性趋势线可以了解到,平均薪资越高的区域,其房价也呈现上升的趋势,这其中的原因有许多,不做过多的讨论,但从以上的分析中,我们可以得到一些结论:
1、数据分析岗在广州还是有许多的机会,主要集中在天河区;
2、数据分析岗的薪资水平普遍在5~15k,但其上限比较高,目前能够到35k以上;
3、广州的数据分析岗对应届毕业生比较友好,但也可能存在需要做大量与数据分析其他相关的工作;
4、随着经验的提升,薪资水平也是不断的提高,在第四年左右是一个瓶颈期,此后压力会变大,但薪资也是会增高不少;
5、广州的房价距离市中心越远越便宜,房源也更加多;
6、在房价相对贵的地方,该区域的薪资水平也会相对高。
 
思考与总结
本项目的分析比较简陋,只是对房价的信息与职位信息做一个简单的分析,如果能够加入二手房以及租房的信息,或许可以得出一个外地应届毕业生在广州找工作的推荐方案,由于技术和时间有限,目前只分析了已有数据。后期还可以加入对数据分析的更多要求或福利,来分析该岗位在广州以及其他城市的对比。
 
 

猜你喜欢

转载自www.cnblogs.com/hjhsblogs/p/11073135.html