Python对拉钩网爬取的数据进行数据清洗②
文件地址 Github:https://github.com/why19970628/Python_Crawler/tree/master/LaGou
脏数据
脏数据可以理解为带有不整洁程度的原始数据。原始数据的整洁程度由数据采集质量所决定。 脏数据的表现形式五花八门,如若数据采集质量不过关,拿到的原始数据内容只有更差没有最差。 脏数据的表现形式包括:
数据串行,尤其是长文本情形下
数值变量种混有文本/格式混乱
各种符号乱入
数据记录错误
大段缺失(某种意义上不算脏数据)
数据采集完后拿到的原始数据到建模前的数据 ———— there is a long way to go. 从数据分析的角度上来讲,这个中间处理脏数据的数据预处理和清洗过程几乎占到了我们全部机器学习项目的60%-70%的时间。
总体而言就是 原始数据 -> 基础数据预处理/清洗 -> 探索性数据分析 -> 统计绘图/数据可视化 -> 特征工程
数据清洗与预处理基本方向
数据预处理没有特别固定的套路
数据预处理的困难程度与原始数据脏的程度而定
原始数据越脏,数据预处理工作越艰辛
数据预处理大的套路没有,小的套路一大堆
机器学习的数据预处理基于pandas来做
缺失值处理
小文本和字符串数据处理
法无定法,融会贯通
缺失值处理方法
删除:超过70%以上的缺失
填充
数据分析与成图网址
https://blog.csdn.net/weixin_43746433/article/details/94500669
招聘数据的清洗过程
一.读取数据
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
data1 = pd.read_csv('./data_analysis.csv', encoding='gbk')
data2 = pd.read_csv('./machine_learning.csv', encoding='gbk')
data3 = pd.read_csv('./data_mining.csv', encoding='gbk')
data4 = pd.read_csv('./deep_learning.csv', encoding='gbk')
data = pd.concat((pd.concat((pd.concat((data1, data2)), data3)), data4)).reset_index(drop=True)
data.shape
data.head()
data.info()
二.清洗数据
2.1将数据中address缺失值改为未知,并去除中括号’[]’
data['address'] = data['address'].fillna("['未知']")
data['address'][:5]
for i, j in enumerate(data['address']):j = j.replace('[', '').replace(']', '')data['address'][i] = j
data['address'][:5]
2.2将数据中industryLables去除中括号
for i, j in enumerate(data['industryLables']):j = j.replace('[', '').replace(']', '')data['industryLables'][i] = jdata['industryLables'][:10]
2.3去除label中的’[]’
for i, j in enumerate(data['label']):j = j.replace('[', '').replace(']', '')data['label'][i] = jdata['label'][:10]
2.4填充缺失值并去除异常字符
data['position_detail'] = data['position_detail'].fillna('未知')
for i, j in enumerate(data['position_detail']):j = j.replace('\r', '').replace('?','')data['position_detail'][i] = j
print(data['position_detail'][:3])
2.5取薪水平均值
for i, j in enumerate(data['salary']):j = j.replace('k', '').replace('K', '').replace('以上', '-0')j1 = int(j.split('-')[0])j2 = int(j.split('-')[1])j3 = 1/2 * (j1+j2)data['salary'][i] = j3*1000
data['salary'].head(10)
2.6 统一position_name名称
for i, j in enumerate(data['position_name']):if '数据分析' in j:j = '数据分析师'if '数据挖掘' in j:j = '数据挖掘工程师'if '机器学习' in j:j = '机器学习工程师'if '深度学习' in j:j = '深度学习工程师'data['position_name'][i] = j
data['position_name'][:5]
data.head()
三 数据清洗模块化
import numpy as np
import pandas as pd
import string
import warnings
warnings.filterwarnings('ignore')class data_clean(object):def __init__(self):passdef get_data(self):data1 = pd.read_csv('./data_analysis.csv', encoding='gbk')data2 = pd.read_csv('./machine_learning.csv', encoding='gbk')data3 = pd.read_csv('./data_mining.csv', encoding='gbk')data4 = pd.read_csv('./deep_learning.csv', encoding='gbk')data = pd.concat((pd.concat((pd.concat((data1, data2)), data3)), data4)).reset_index(drop=True)return datadef clean_operation(self):data = self.get_data()data['address'] = data['address'].fillna("['未知']")for i, j in enumerate(data['address']):j = j.replace('[', '').replace(']', '')data['address'][i] = jfor i, j in enumerate(data['salary']):j = j.replace('k', '').replace('K', '').replace('以上', '-0')j1 = int(j.split('-')[0])j2 = int(j.split('-')[1])j3 = 1/2 * (j1+j2)data['salary'][i] = j3*1000for i, j in enumerate(data['industryLables']):j = j.replace('[', '').replace(']', '')data['industryLables'][i] = jfor i, j in enumerate(data['label']):j = j.replace('[', '').replace(']', '')data['label'][i] = jdata['position_detail'] = data['position_detail'].fillna('未知')for i, j in enumerate(data['position_detail']):j = j.replace('\r', '')data['position_detail'][i] = jreturn dataopt = data_clean()
data = opt.clean_operation()
data.head()
四.保存数据
data.to_csv('data_cleaned.csv')
如果保存的文件乱码,请移步这篇文章:
https://blog.csdn.net/weixin_43746433/article/details/94464190
数据分析与成图网址
https://blog.csdn.net/weixin_43746433/article/details/94500669
Python对拉钩网爬取的数据进行数据清洗②相关推荐
- Python实战,爬取金融期货数据
大家好,我是毕加锁. 今天给大家带来的是 Python实战,爬取金融期货数据 文末送书! 文末送书! 文末送书! 任务简介 首先,客户原需求是获取https://hq.smm.cn/copper网 ...
- 如何使用python实现简单爬取网页数据并导入MySQL中的数据库
前言:要使用 Python 爬取网页数据并将数据导入 MySQL 数据库,您需要使用 Requests 库进行网页抓取,使用 BeautifulSoup 库对抓取到的 HTML 进行解析,并使用 Py ...
- 初识Python爬虫----如何爬取网络数据
一.什么是网络爬虫 即爬取网络数据的虫子,也就是Python程序. 二.爬虫的实质是什么? 模拟浏览器的工作原理,向服务器发送请求数据. 三.浏览器的工作原理是什么? 浏览器还可以起到翻译数据的作用. ...
- Python网络爬虫爬取招聘数据(利用python简单零基础)可做可视化
爬取Boss直聘相关的招聘数据 一.相关需求分析 1.目的 二.直聘网页结构分析 1.网页相关值的查找 2.网页的下一页规律查找 三.Python相关的第三库介绍 1.Urllib的介绍 (1)url ...
- 【Python爬虫】爬取大量数据网络超时的解决思路
问题 在爬取大量数据的过程中,有时没有注意,会出现网络超时,结果也不知道爬到了哪里,重新爬一遍代价太大. 解决思路 目前提供解决思路,实践之后补充示例代码. 思路一 1.设置超时处理,超过时间返回异常 ...
- python用selenium爬取网页数据_Python项目实战:使用selenium爬取拉勾网数据
" 一切不经过项目验证的代码都是耍流氓,今天我们就通过一个简单的招聘网站的数据归档进行当前热门岗位的大数据分析,最后以wordcloud进行显示.本文为数据爬取篇." 项目准备: ...
- Pycharm + python 爬虫简单爬取网站数据
本文主要介绍简单的写一个爬取网站图片并将图片下载的python爬虫示例. 首先,python爬虫爬取数据,需要先了解工具包requests以及BeautifulSoup requests中文文档:ht ...
- python爬虫爬取房源_手把手教你用Python网络爬虫爬取新房数据
项目背景 大家好,我是J哥. 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. 今天J哥以「惠民之家」 ...
- Python 超简单爬取新浪微博数据
新浪微博的数据可是非常有价值的,你可以拿来数据分析.拿来做网站.甚至是*****.不过很多人由于技术限制,想要使用的时候只能使用复制粘贴这样的笨方法.没关系,现在就教大家如何批量爬取微博的数据,大大加 ...
最新文章
- centos lustre 简单 安装教程
- 简单区分Vmware的三种网络连接模式(bridged、NAT、host-only)
- JS数据结构与算法——选择排序(把小的数字依次往前放)
- oracle 运营维护_总结几个ORACLE数据库日常运维常用的命令(持续更新)
- 斐讯K2刷回原厂固件
- vc6.0垃圾文件清理工具_小白也能轻松上手,借用联想小工具轻松解决常见win10问题...
- 工厂模式(Factory Method)
- 如何让搜索引擎收录我的站点
- 你知道bat是什么意思吗?
- 安卓从入门到进阶第一篇(环境搭建)
- Python 读取文件夹下的Excel文件导入到数据库
- 智慧社区+物联网解决方案
- 3t硬盘哪个服务器系统识别,3T硬盘为何不能被系统完全识别
- 响应式织梦模板工业机械设备类网站
- 关于LINUX系统netterm终端登陆乱码问题。
- 论文阅读 Learning Transferable Visual Models From Natural Language Supervisio
- 2023年美赛(MCM/ICM)简介
- fseek函数的应用
- 微视网媒:万亿城配的变局者,罗戈网专访绿色慧联总经理杨东
- win7系统更改计算机用户名和密码错误,win7系统一开机就显示用户名和密码错误故障的解决方法...