数据清洗(Python)

本文介绍了数据清洗的步骤,包括数据探索、类型一致性检查、缺失值处理、重复值检查和离群值检测。通过使用Python的pandas库,展示了如何检查数据结构、转换数据类型、填充缺失值以及处理异常值。此外,还提到了对电影数据集中的电影名和评分进行特殊字符检查和空值处理。
摘要由CSDN通过智能技术生成

2022.3.9回顾:特征工程:数据清洗、转换、选择、提取

数据清洗:

一、数据探索

        第一步:导入数据并了解基本结构,字段类型等

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import datetime as datetime
data = pd.read_excel(r'movie.xlsx')
data.head()
data.describe()
data.dtypes
data.info()
data.shape

二、数据类型一致性检查处理

        关于一些类型转换跟取舍(再修改!!)

#数据的一致性检查:筛选出movie_name一列中不是str类型的行
#函数isinstance(object, classinfo)用来判断一个对象是否是一个已知的类型,类似type()。如果对象object的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False

strlist = []
for i in data['movie_name'].index: #遍历参数
    if isinstance(data['movie_name'][i],str)==False: #不是str 则 添加到strlist中
        strlist.append(i)
data['movie_name'][strlist]


#检查电影名中是否存在特殊的或者非法的字符 "adfsec","打发打发"
strlist2 = []
for i in data['movie_name'].index:
    if data['movie_name'][i] in ['?','#','$']:
        strlist2.append(i)
data['movie_name'][strlist2]

strlist.extend(strlist2)  #拼接到一起
data = data[~(data['movie_name'].index.isin(strlist))] #取反

 

 

 

  

三、缺失值检查处理

#空缺值检查,True表示有空值,False则无
data.isna().any()
#或者数出来
data.isnull().sum()
data.count()

# 空缺率(分母是data.count(),应该data.shape[0]也可以)
data_kql = (data.shape[0]-data.count())/data.count()
#或者
data_kql = (data[data.duplicated()].count())/data.count()

# 空缺值处理,数值类型可以填充均值、众数、模型预测的值等等,定性的/字符类型可以用众数或者NaN
data['movie_score'].fillna(data['movie_score'].mean(),inplace=True)
# 也可以直接删除
data.dropna(inplace=True)


# 只显示movie_score有空值的行
data[data['movie_score'].isna()]

 

四、重复值检查处理

#检查重复值,False没有重复则不需要处理
data.duplicated().any()

#重复率
data[data.duplicated()].count()/data.count()

五、离群值检查处理

      箱线图我还不是很会!!

#分箱
percentlier = data['movie_time_consuming'].quantile([0,0.25,0.5,0.75,1])
percentlier
#看到电影时长最小值为1,最大值为5400,显然不合理

# data = data[data['movie_time_consuming']!=5400 | 1 ]
# 一个一个离群数值排除比较麻烦,后续可以进行一个范围的限制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值