数据清洗

数据竞赛(二)-数据清洗

隐身守侯 提交于 2020-01-26 06:20:04
缺失值分析及处理 缺失值出现的原因分析 采取合适的方式对缺失值进行填充 异常值分析及处理 根据测试集数据的分布处理训练集的数据分布 使用合适的方法找出异常值 对异常值进行处理 深度清洗 分析每一个communityName、city、region、plate的数据分布并对其进行数据清洗 参考资料: 一文带你探索性数据分析(EDA) 分割线正文 主要思路分析 虽然这步骤是缺失值处理,但还会涉及到一些最最基础的数据处理。 缺失值处理 缺失值的处理手段大体可以分为:删除、填充、映射到高维(当做类别处理)。详细的请自行查找相关资料学习。 根据任务一,直接找到的缺失值情况是pu和uv;但是,根据特征nunique分布的分析,可以发现rentType存在"–"的情况,这也算是一种缺失值。 此外,诸如rentType的"未知方式";houseToward的"暂无数据"等,本质上也算是一种缺失值,但是对于这些缺失方式,我们可以把它当做是特殊的一类处理,而不需要去主动修改或填充值。 将rentType的"–“转换成"未知方式"类别; pv/uv的缺失值用均值填充; buildYear存在"暂无信息”,将其用众数填充。 转换object类型数据 这里直接采用LabelEncoder的方式编码,详细的编码方式请自行查阅相关资料学习。 时间字段的处理 buildYear由于存在"暂无信息"

python数据清洗记录(持续更新)

谁说胖子不能爱 提交于 2020-01-19 04:27:52
数据清洗是数据分析中很重要的一步,好比蔬菜水果要洗过之后再吃,不然容易拉肚子; 本文目的是持续搜集总结python对各种数据进行清洗的方法,之后遇到忘记的在这里Ctrl+F就找得到; 文中有提供简单的案例,看到的同学可以复制黏贴操作一下; 数据清洗 数值类 1缺失值 1.1缺失值的类型 NaN – not a number – 对于数来说,非数字 None – 对于object来说,没东西 NaT – not a time --对于时间来说,非时间 test11 = pd.DataFrame({'num':[1,2,np.nan,4], 'obj':['a',None,'c','d'], 'time':pd.to_datetime(['2022-01-01','2022-01-02','2022-01-03',np.nan])}) 1.2缺失值的探索分析 #isnull(),探索上述缺失值类型,返回bool型 test11.isnull() #对布尔型的dataframe进行求和聚合查看数量 test11.isnull().sum() #计算缺失值占比 test11.isnull().sum()/test11.isnull().count() #定位空值在哪些行 test11[~test11.index.isin(test11.dropna().index)] 1.3缺失值的处理

数据清洗

China☆狼群 提交于 2020-01-16 08:59:07
任务2 数据清洗 def preprocessingData(data): # 填充缺失值 data['rentType'][data['rentType'] == '--'] = '未知方式' # 转换object类型数据 columns = ['rentType','communityName','houseType', 'houseFloor', 'houseToward', 'houseDecoration', 'region', 'plate'] for feature in columns: data[feature] = LabelEncoder().fit_transform(data[feature]) # 将buildYear列转换为整型数据 buildYearmean = pd.DataFrame(data[data['buildYear'] != '暂无信息']['buildYear'].mode()) data.loc[data[data['buildYear'] == '暂无信息'].index, 'buildYear'] = buildYearmean.iloc[0, 0] data['buildYear'] = data['buildYear'].astype('int') # 处理pv和uv的空值 data['pv'].fillna(data[

scrapy--Itemloader数据清洗--input_processor和output_processor比较

六眼飞鱼酱① 提交于 2020-01-15 07:38:45
上一篇介绍了一些关于Itemloader的用法,如果没有看的话,去看一下,这两篇有一定的关联。本篇着重介绍数据清洗的一些方法。 processor scrapy提供了一个processors类,里面有下列几种方法:Join,TakeFirst,MapCompose,Compose,Identity,SelectJmes 对这几种方法的用法简单介绍一下: from scrapy.loader.processors import Join,TakeFirst,MapCompose,Compose,Identity,SelectJmes#以特定字符连接,示例以空连接,对字符串也能操作c = Join('')c(['a','b'])>>>'ab'#********************#传入函数的列表的每一个元素都会经过第一个函数,#得到值在经过第二个函数,如果有返回值为None的,则抛弃,#最后返回一个列表c=MapCompose(str.strip,str.upper)c([' a ','b'])>>>['A', 'B']#********************#如果传入一个列表时则会报下面这个错误#descriptor 'strip' requires a 'str' object but received a 'list'#但如果Compose的第一个函数是取列表的第一个元素

datawhale数据竞赛day02-数据清洗

对着背影说爱祢 提交于 2020-01-11 03:35:00
datawhale数据竞赛day02-数据清洗 数据清洗主要是删除原始数据集中的无关数据、重复戴护具,平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值、异常值等 在这一步,可以将训练集和测试值放在一起做处理 import pandas as pd #读入数据 data_train = pd . read_csv ( 'train_data.csv' ) data_test = pd . read_csv ( 'test_a.csv' ) #print(data_train) #print(data_test) #区分训练集和测试集,之后一起做数据处理 data_train [ 'type' ] = "Train" data_test [ 'Type' ] = "Test" #将数据合在一起 data_all = pd . concat ( [ data_train , data_test ] , ignore_index = True ) print ( data_all ) 缺失值分析及处理 一、缺失值出现的原因分析 数据集会因为各种原因有所缺失,例如调查时没有记录某些观察值等。了解缺失的数据是什么至关重要,这样才可以决定下一步如何处理这些缺失值。 根据第一天ETA,UV和PV都有18条记录缺失 PV和UV都是客户的信息,PV表示该板块当月租客浏览网页次数

数据挖掘笔记Ⅱ——数据清洗(房租预测)

丶灬走出姿态 提交于 2020-01-10 13:10:23
缺失值分析及处理 缺失值出现的原因分析 采取合适的方式对缺失值进行填充 异常值分析及处理 根据测试集数据的分布处理训练集的数据分布 使用合适的方法找出异常值 对异常值进行处理 深度清洗 分析每一个communityName、city、region、plate的数据分布并对其进行数据清洗 0、调包加载数据 首先,我们要做的就是加载可能要用到的包。以及源数据的导入; #coding:utf-8 #导入warnings包,利用过滤器来实现忽略警告语句。 import warnings warnings . filterwarnings ( 'ignore' ) # GBDT from sklearn . ensemble import GradientBoostingRegressor # XGBoost import xgboost as xgb # LightGBM import lightgbm as lgb import pandas as pd import numpy as np import matplotlib . pyplot as plt import seaborn as sns #Seaborn其实是在matplotlib的基础上进行了更高级的API封装 from sklearn . model_selection import KFold #用于交叉验证的包

2_数据清洗

丶灬走出姿态 提交于 2020-01-10 11:23:08
任务2 数据清洗(2天) 每一步都要认真完成,附上代码,最终效果截图 缺失值分析及处理 缺失值出现的原因分析 采取合适的方式对缺失值进行填充 异常值分析及处理 根据测试集数据的分布处理训练集的数据分布 使用合适的方法找出异常值 对异常值进行处理 深度清洗 分析每一个communityName、city、region、plate的数据分布并对其进行数据清洗 简要分析 在任务一中,我们对于赛题、数据总体情况、缺失值、特征分布等信息做了简要的分析。在本次任务中就是基于任务一的分析做数据清理工作。 在一些场景中,任务一和任务二合并起来会被称作EDA(Exploratory Data Analysis-探索性数据分析)。当然真正的EDA包含的内容远不止这两份参考示例所展示了,大家可以自行学习尝试。 参考资料: 一文带你探索性数据分析(EDA) 缺失值处理 #coding:utf-8 #导入warnings包,利用过滤器来实现忽略警告语句。 import warnings warnings . filterwarnings ( 'ignore' ) # GBDT from sklearn . ensemble import GradientBoostingRegressor # XGBoost import xgboost as xgb # LightGBM import lightgbm

数据清洗第二天

和自甴很熟 提交于 2020-01-10 03:36:57
缺失值分析及处理 导包 import pandas as pd import numpy as np import matplotlib . pyplot as plt import seaborn as sns from sklearn . model_selection import KFold from sklearn . metrics import r2_score from sklearn . preprocessing import LabelEncoder import pickle import multiprocessing from sklearn . preprocessing import StandardScaler ss = StandardScaler ( ) from sklearn . model_selection import StratifiedKFold from sklearn . linear_model import ElasticNet , Lasso , BayesianRidge , LassoLarsIC , LinearRegression , LogisticRegression from sklearn . pipeline import make_pipeline from sklearn .

R语言- 实验报告 - 数据清洗

烈酒焚心 提交于 2020-01-06 12:32:01
一、 实训内容 能对基本的开发环境进行检验和错误排查,以及对新语言软件进行安装。 能使用Navicat for MySQL对MySQL数据库进行基本的连接测试,同时,在mysql中新建student数据库。能利用外部SQL脚本文件对数据库进行数据集的导入和初始化。 熟悉利用eclipse编程工具,新建项目和工具类对mysql数据库进行相应的操作,以及从该项目中导出可执行的jar文件。 利用R-3.6.1-win.exe运行,导出的可执行的jar文件。并编写一个“数据清洗.r”脚本文件,对C:\ inputdir目录下,导出的studentdata.txt数据文件进行数据清洗操作,包括过滤字段等操作。同时,在C:\outputdir目录下生成已经进行数据清洗的数据文件studentdata.txt 。 二、 实验课题目标 掌握基本的开发环境的搭建、检验和错误排查能力,熟悉新的开发语言。 熟悉使用Navicat for MySQL软件对MySQL数据库进行基本的操作。重要的是,能利用外部SQL脚本文件对特定的数据库进行数据集的导入和初始化。 掌握eclipse编程工具的使用,以及在编程过程中熟悉常用的快捷键,提高编程的效率。掌握如何编写一个常规的Java类程序,对mysql数据库进行进本的数据操作,以及能从Java项目中导出相应可执行的jar文件。 掌握R语言的基本语法,以及R-3.6

使用Python爬取、清洗并分析前程无忧的大数据职位

核能气质少年 提交于 2019-12-24 04:03:49
爬取前程无忧的数据(大数据职位) 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Wed Nov 1 14:47:27 2019 4 5 @author: loo 6 """ 7 8 9 import scrapy 10 import csv 11 from scrapy.crawler import CrawlerProcess 12 13 14 class MySpider(scrapy.Spider): 15 name = "spider" 16 17 def __init__(self): 18 # 保存为CSV文件操作 19 self.f = open('crawl_51jobs.csv', 'wt', newline='', encoding='GBK', errors='ignore') 20 self.writer = csv.writer(self.f) 21 '''title,locality,salary,companyName,releaseTime''' 22 self.writer.writerow(('职位', '公司地区','薪资', '公司名称', '发布时间')) 23 24 # 设置待爬取网站列表 25 self.urls = [] 26 # 设置搜索工作的关键字 key 27 key = '大数据'