栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数据分析:Pandas数据预处理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据分析:Pandas数据预处理

常见不规整数据主要有:

  1. 缺失数据
  2. 重复数据
  3. 异常数据
1. 缺失值处理 1.1 缺失值查看

Python缺失值一般用NaN表示。

  • info():可返回每一列的缺失情况。
  • isnull():判断哪个值是缺失值。如果是缺失值,则返回True。
1.2 缺失值删除
  • dropna():默认删除有缺失值的行。 只要一行有缺失值,就把整行的值删掉。
    dropna(how = “all”):删除空白行,只会删除全为空值的行。
1.3 缺失值填充

一般情况下,只要缺失数据比例不过高,即不超过30%,尽量不删除,而是选择填充。

  • df.fillna({“列1”:“填充值1”, “列2”:“填充值2”}):对数据表中的所有缺失值进行填充。
2. 重复值处理
  • drop_duplicates():默认删除重复值, 且保留第一个(行)的值。
    drop_duplicates(subset = “列1”):只删除列1的重复值。
    drop_duplicates(subset = [“列1”, “列2”,“列3”],keep = first):删除多列重复值, 列名以列表的形式传给参数subset。
    keep:自定义删除重复项时保留哪个。
    • first:默认值,保留第一个。
    • last:保留最后一个。
    • False:把重复值全部删除。
3. 异常值的检测与处理

异常值,就是相比正常值而言,过高或过低的数据。 比如人的年龄是0岁或者150,都是异常值,因为与实际情况差距很大。

3.1 异常值检测(p82)
  1. 根据业务经验,划定不同指标的正常范围,超过该范围的值,算作异常值。
  2. 通过绘制箱型图,把大于箱型图的上边缘,以及小于箱型图下边缘的点,称为异常值。
  3. 如果数据服从正态分布,则可以利用3δ原则;如果一个值与平均值之间的偏差超过3倍的标准差,那么我们就认为这个值为异常值。
3.2 异常值处理
  1. 最常用的处理方式:删除。
  2. 把异常值当缺失值填充。
    先把异常值筛选出来, 然后用replace()替换。
  3. 把异常值当特殊情况, 研究出异常值出现的原因。
4. 数据类型转换 4.1 数据类型

Python主要有6种数据类型。

类型说明
int整型数,即整数
float浮点数,即含有小数点的数
objectPython对象类型,用O表示
string_字符串类型,经常用S表示。 S10,表示长度为10的字符串。
unicode_固定长度的unicode类型,跟字符串定义方式一样。
datetime64[ns]表示时间格式

查看数据类型的方式:

  • info():获取每一列的数据类型。
  • dtype():获取某一列数据类。
    Sample: df["A"].dtype,查看A列的类型
4.2 类型转换
  • astype():对数据类型进行转换。
    Sample: df["A"].astype("float64"),将A列的数据类型准换成float。
5. 索引设置

索引是查找数据的依据,设置索引的目的,是便于我们查找数据。

5.1 为无索引表添加索引
  • df.columns = ["A","B","C","D"]:为df表添加列索引
  • df.index = [0,1,2,3,4]:为df表添加行索引
5.2 重新设置索引
  • df.set_index(“A”):用A列作为索引列。
    层次化索引:给set_index()传入多个列名,一个表中用多列做索引的方式称为层次化索引。
5.3 重命名索引
  • df.rename(columns = {“旧名1”:“新名1”, “旧名2”:“新名2”},index = {“旧名1”:“新名1”, “旧名2”:“新名2”}):新旧名用键值对表示。
5.4 重置索引

重置索引,主要用在层次化索引表中,是将索引当作一个columns进行返回,变成常规列。
df.rest_index(level =None,drop = False, inplace = False)

  • level:指定要将层次化索引的第几级别转化为columns。第一个索引为0级。
  • drop:指定是否将原索引删掉,即不作为新的columns。默认是False,即不删除原索引。
  • inplace:用来指定是否修改原数据表。

Sample:

  • df.reset_index():默认将所有index转化成columns。
  • df.reset_index(level= 0):将第0级索引转化为columns。
  • df.reset_index(drop = True):将原索引删除, 不加入columns。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号