python数据处理——史诗级最全版本!

1.1 目的

①使用Python对数据进行缺失值分析,掌握各类库方法的使用。

②经过缺失值分析,掌握如何处理缺失值。

1.2 方法

生成含有缺失值的数据集

对数据集进行缺失值分析

使用删除缺失值方法处理数据集。

1.3 源代码及结果

导入 pandas、numpy库,生成一个含有缺失值数据的数据集

import pandas as pd
import numpy as np  #导入库

date=pd.DataFrame({'name':['张三','李四','王五','Bob',np.nan],'age':np.nan,18,30,20,25],'id':[1401,1402,1403,np.nan,1405]})

#创建一个含有缺失值的数据集
print(date)  #打印原始数据集

②使用isnull(方法查看缺失值,使用 any()方法查看含有缺失值的列,使用 all()方法查看全部都是缺失值的列,并且将上述查看内容全部打印输出:

# isnull()方法查看缺失值,缺失值位置显示true,没有的位置显示fales
print(data.isnull())

# 获取含有缺失值的列
print(data.isnull().any())

# 获取全部都是缺失值的列
print(data.isnull().all())

③处理缺失值,使用 dropna()方法删除含有缺失值的行:

# 删除缺失值
print(data.dropna())

全部代码:

import pandas as pd
import numpy as np  #导入库
data=pd.DataFrame({'name':['张三','李四','王五','Bob',np.nan],'age':[np.nan,18,30,20,25],'id':[1401,1402,1403,np.nan,1405]})#创建一个含有缺失值的数据集
print(data)  #打印原始数据集
print(data.isnull())#isnull()方法查看缺失值,缺失值位置显示true,没有的位置显示fales
print(data.isnull().any())#获取含有缺失值的列
print(data.isnull().all())#获取全部都是缺失值的列
print(data.dropna())#删除缺失值

1.4 结果分析

导入python的pandas库和numpy库。pandas库有以下功能①数据文件读取/文本数据读取②索引、选取和数据过滤③算法运算和数据对齐④函数的应用和映射⑤重置索引。

本题中运用的是pandas的数据过滤获取功能,主要是通过DataFrame的相关方式可以获取对应的列或者数据形成一个新的DataFrame, 方便后续进行统计计算。在本题中,利用pandas库中的DataFrame创建一个含有缺失值的数据集。在python中分析缺失值的方法为isnull()方法,调用它可以生成一个新的数据集,没有数据的地方显示True,有数据的地方显示False;调用isnull()方法下的any()方法,可以查看含有缺失值的列有哪些;调用isnull()方法下的all()方法,可以查看全部都是缺失值的列有哪些;调用dropna()方法可以删除缺失值所在的行,这个方法也是处理缺失值的直接方法。

2 异常值处理

2.1 目的

在 Python 中对数据进行标准化操作,对标准化后的数据进行分析,制定筛选标准筛选出异常值,从而达到异常值分析的效果。

①使用 Python 对数据进行异常值分析,掌握各类库方法的使用;

②掌握对数据的均值、标准差的计算。

2.2 方法

①生成含有异常值的数据集;

②对数据进行标准化;

③对数据集进行异常值分析。

2.3 源代码及结果

①导入 pandas 库,并生成一个含有异常值的数据集,打印显示:

import pandas as pd #导入库
data=pd.DataFrame({'name':['A','B','C','D','E','F','G'],'cost':[2,127,4,6,3,13,14],'sales':[13,18,32,54,23,33,44]})#创建一个含有异常值的数据
print(data)

②先将源数据集复制一份(因为之后的标准化操作会覆盖源数据,所以需要备价然后对复制的数据的每一列数据进行标准化操作,并将标准化后的数据打印:

data1=data.copy()#防止将数据覆盖,复制一份进行操作
data1['cost']=(data1['cost']-data1['cost'].mean())/data1['cost'].std()
data1['sales']=(data1['sales']-data1['sales'].mean())/data1['sales'].std()
#计算两列数据的均值和标准差,对两列进行标准化
print(data1)

#标准化后数据,绝对值越大偏离程度越大

③制定一个筛选标准(标准化的数据绝对值越大,说明偏离越大,异常概率更大这里我们制定筛选标准为“cost 标准化列数据>2”:

# 制定一个筛选异常值的标准,对源数据进行筛选
print(data[data1['cost'].abs()>2])

#筛选出含有异常值的行数据

全部代码:

import pandas as pd #导入库
data=pd.DataFrame({'name':['A','B','C','D','E','F','G'],'cost':[2,127,4,6,3,13,14],'sales':[13,18,32,54,23,33,44]})
#创建一个含有缺失值的数据
#print(data)
data1=data.copy()#防止将数据覆盖,复制一份进行操作
data1['cost']=(data1['cost']-data1['cost'].mean())/data1['cost'].std()
data1['sales']=(data1['sales']-data1['sales'].mean())/data1['sales'].std()
#计算两列数据的均值和标准差,对两列进行标准化
print(data1)
print(data[data1['cost'].abs()>2])#制定一个筛选异常值的标准,对源数据进行筛选

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值