【数据分析】【数据清理】快速入门+案例+代码+GIF实操

本文介绍了数据分析中数据处理的重要性和常见步骤,包括数据清洗的套路,如缺失值、异常值、重复值的处理。通过案例展示了如何使用Python的pandas、numpy、matplotlib等库进行数据处理,强调了数据质量对建模效果的影响,并推荐使用pandas_profiling进行数据概览。此外,文中提到数据处理应结合业务需求,并养成随时保存数据的习惯。
摘要由CSDN通过智能技术生成

前言:经过前面两篇文章的阅读,我们已经对数据的获取有了一定的概念。在数据挖掘的工作中,我们很大一部分的时间都会花在数据处理和特征工程上面,真正的可视化和建模反而时间占比不大。这是因为,建模要求我们传入的数据是机器可识别的数据,并且数据不包括异常、缺失值。因此,这篇文章主要内容是常见的数据处理的套路总结,下一篇文章是常见的特征工程套路的总结。我将会按照原理、自己的理解、代码实现、案例这四个维度进行常见套路的总结,如果是你需要的话,就继续阅读下去吧。

一:为什么要做数据处理

首先,我们思考一下为什么要做数据处理。要说清楚这个问题,我们首先要对数据建模有一个认知。数据建模是基于已有的数据进行分类、聚合的算法。无论是有监督的数据还是无监督的数据,都是基于数据本身的规律通过算法实现模型构造。因此,当我们的数据中出现缺失值、异常值、无意义的重复值时,就会导致建模精度不高,如此自然也就无法达成我们想要的效果。而这也是数据处理之所以重要的原因。相当于大厦的根基,根基不稳,自然建造不出稳定的房子。

二:一些常见的数据清洗套路

2.1 安装包需求

需要安装有python、并且安装有pandas、numpy、matplotlib、sklearn、jupyter lab三方包。后续要使用到或者推荐到其它的三方包会进行说明。强烈建议安装Anaconda解决上述安装问题。再在Anaconda里面安装jupyter lab即可解决问题。
ps:如果对数据如何读入,以及索引等感兴趣,可以到哔哩哔哩观看我之前录制的pandas和numpy的教学视频:https://www.bilibili.com/video/BV1A7411D758/

2.2 数据

我们的数据来源于kaggle:https://www.kaggle.com/c/titanic
或者也可以访问天池:https://tianchi.aliyun.com/dataset/dataDetail?dataId=58756
二者都可以得到我们要使用的titanic数据。接下来我们为这个数据集添加一些缺失值、重复值和异常值吧。

import pandas as pd
import numpy as np
import os,random
os.chdir(r'D:\Data\Datas Analysis\learn\official\base\titanic')

# 首先要获得我们的泰坦尼克数据
datas = pd.read_csv('train.csv')

# 明确我们的缺失值、重复值、异常值
na_value = np.nan
duplicate_vlaues = []
exception_values = [99999999,0.0000001,'卯月']

# 找到我们待会儿要使用的随机索引
rows = random.sample(range(891),50)
columns = random.sample(range(12),6)

# step1 : 获得我们的重复值
for _ in range(10):
  i = random.choice(rows)
  duplicate_value = datas.iloc[i,:]
  duplicate_vlaues.append(duplicate_value)

duplicate_vlaues = pd.DataFrame(duplicate_vlaues)
# 覆盖原数据并且重置索引
datas = pd.concat((datas,duplicate_vlaues),axis=0,ignore_index=True)

# step2 :设定我们的缺失值
for _ in range(50):
  i = random.choice(rows)
  j = random.choice(columns)
  datas.iloc[i,j] = np.nan

# step3 : 设定我们的异常值
for _ in range(50):
  i = random.choice(rows)
  j = random.choice(columns)
  exception_value = random.choice(exception_values)
  datas.iloc[i,j] = exception_value

# 将我们修改后的数据保存到一个新的csv文件中
datas.to_csv('matt_train.csv')

生成新的测试数据

2.3 统计性数据

假设我们从别的地方得到了一份数据,这份数据就是我们刚才处理后得到的matt_train.csv。设定这是我们第一次见到这个数据。通常的做法和数据提供人员交流,获知每一列代表什么意思。以及异常值的判定、行业相关的常识等。第二步是自己使用一些统计性数据方法查看更多的信息。

2.3.1 万能的info属性

我们拿到数据的第一眼,应该看看有哪些信息。因此,我们可以使用info属性查看信息(设定我们才拿到数据,因此也必须重新导包。当然,如果你进行了上一步的操作并且没有退出jupyter,可以不用再导包。)

import pandas as pd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值