最近在做Python职位分析的项目,做这件事的背景是因为接触Python这么久,还没有对Python职位有一个全貌的了解。所以想通过本次分析了解Python相关的职位有哪些、在不同城市的需求量有何差异、薪资怎么样以及对工作经验有什么要求等等。分析的链路包括:
数据采集
数据清洗
异常的创建时间
异常的薪资水平
异常的工作经验
统计分析
大盘数据
单维度分析
二维交叉分析
多维钻取
文本分析
文本预处理
词云
FP-Growth关联分析
LDA主题模型分析
分为上下两篇文章。上篇介绍前三部分内容,下篇重点介绍文本分析。
0. 数据采集巧妇难为无米之炊,我们做数据分析大部分情况是用公司的业务数据,因此就不需要关心数据采集的问题。然而我们自己业余时间做的一些数据探索更多的需要自己采集数据,常用的数据采集技术就是爬虫。
本次分享所用的数据是我从拉勾网爬取的,主要分为三部分,确定如何抓取数据、编写爬虫抓取数据、将抓取的数据格式化并保存至MongoDB。关于数据采集这部分内容我之前有一篇文章单独介绍过,源码也开放了,这里我就不再赘述了,想了解的朋友可以翻看之前那篇文章。
1. 数据清洗有了数据后,先不要着急分析。我们需要对数据先有个大概的了解,并在这个过程中剔除一些异常的记录,防止它们影响后续的统计结果。
举个例子,假设有101个职位,其中100个的薪资是正常值10k,而另外一个薪资是异常值1000k,如果算上异常值计算的平均薪资是29.7k,而剔除异常值计算的平均薪资是10k,二者差了将近3倍。
所以我们在作分析前要关注数据质量,尤其数据量比较少的情况。本次分析的职位数有1w条左右,属于比较小的数据量,所以在数据清洗这一步花了比较多的时间。
下面我们就从数据清洗开始,进入编码阶段
1.0 筛选python相关的职位导入常用库
import pandas as pd import numpy as np import matplotlib.pyplot as plt from pymongo import MongoClient from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] #解决seaborn中文字体显示问题 %matplotlib inline