python数据清洗

本文基于DW第二章的第一节部分课总结即补充http://​http://Datawhale/hands-on-data-analysis​

数据集:泰坦尼克

2、数据清洗

2.1缺失值观察与处理

2.1.1缺失值观察

# 导入数据
import numpy as np
import pandas as pd
df = pd.read_csv('train.csv')

# 查看数据的缺失值
# 先查看所有数据的基本信息
df.info()

Cabin  204 non-null object 可以知道有204个数据是非空的 说明有大量的数值缺少

 在python中NaN、None、np.nan均会被认为是空值

# 统计所有特征值的缺失值
#方法一
df.isnull().sum()

#方法二:缺失会显示为True
df.isnull() 

# 显示某些特征值的一些信息
df[['Age','Cabin','Embarked']].head(3)

可视化显示缺失值

# 这里要注意missingno需要安装
import missingno as msno
msno.matrix(df,figsize=(12,5))

 2.1.2 对缺失值进行处理

#方法一:行删除
##原来的数据集不会更改 inpalce = True时会改变或者df = df.dropna()
df.dropna()

#用于删除行全是空的值
data.dropna(how='all')
data.dropna(axis=0,how ='all') # axis = 0表示横轴 默认的

#列删除:用于删除全是空值的那一列
data.dropna(axis=1,how ='all') axis = 1表示纵轴

对数据进行填充

# df.iloc[]
#采用切片的方式填充为0 
df.iloc[:4, 1] = 0  # 第一个参数为行范围 第二个参数为列 也就是0-3行 索引为1的填充0

#df.fillna()
df=df.fillna(0) 空缺值全部填充0
#通过一个字典调用fillna,实现对不同的列填充不同的值:
df=df.fillna({1: 0.5, 2: 0})# 第一列填充0.5 第二列填充0

#对'Age'中的缺失值填充0 以下三个是等价的
df[df['Age'].isnull()] = 0
df[df['Age']==None]=0
df[df['Age'] == np.nan] = 0


清洗重复的行

# 查看重复的行 如存在为False
data.duplicated()

#去除重复的行
data = data.drop_duplicates()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值