python数据分析之数据清洗(以摩托车的销售情况数据为例)

文章目录

一、获取数据集并寻找存在的问题

1、阅读数据集描述

python数据分析之数据清洗(以摩托车的销售情况数据为例)

; 2、查看数据并发现问题

缺失值比较多
价格,里程不为实数
数据存在重复
部分数据没有离散化
存在异常值
其他问题

二、清洗步骤

1、数据格式转换

价格$1,000 -> 1000(整数),其他数据去掉逗号


def f_1(s):
    if '$' in str(s):
        s = str(s).strip('$')
    s = str(s).replace(',','')
    return float(s)

df['Price'] = df['Price'].apply(f_1)
df['Mileage'] = df['Mileage'].apply(f_1)

2、去重复

print ('数据集是否存在重复观测: \n', any(df.duplicated()))

检查数据集是否有重复

python数据分析之数据清洗(以摩托车的销售情况数据为例)
在这个数据集中’Condition’,’Condition_Desc’,’Price’,’Location’是比较重要的几个属性,可以把这几个字段重复的删除

print(df[df.duplicated()])

print(np.sum(df.duplicated()))

df.drop_duplicates(subset= ['Condition','Condition_Desc','Price','Location'],keep='first',inplace=True)

3、缺失值处理

(1)删除法


df.dropna(subset=['Condition','Price','Mileage'],inplace=True)

(2)填补法(种类繁多,见下图)

python数据分析之数据清洗(以摩托车的销售情况数据为例)

4、异常值处理

画出箱线图

plt.subplot(131)
df.Price.plot(kind = 'box')
plt.subplot(132)
df.Mileage.plot(kind='box')
plt.subplot(133)
df.Bid_Count.plot(kind='box')
plt.tight_layout()
plt.show()

python数据分析之数据清洗(以摩托车的销售情况数据为例)
删除或者替换异常值(极大/极小)

def substitute(attr,df):

    attr = str(attr)
    P1 = df[attr].quantile(0.01);
    P99 = df[attr].quantile(0.99)
    df.loc[df[attr] > P99, attr] = P99
    df.loc[df[attr] < P1, attr] = P1
for a in {'Price','Mileage','Bid_Count'}:
    substitute(a,df)

这样数据就看起来好多了

python数据分析之数据清洗(以摩托车的销售情况数据为例)

5、数据离散化

数据离散化实际就是”分箱”——就是把数据分成不同的几类,便于分析
常用函数pandas.cut:

python数据分析之数据清洗(以摩托车的销售情况数据为例)

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
df = pd.read_csv('MotorData.csv',encoding = 'gbk',na_values='Na')
w = [100,1000,5000,10000,20000,30000]
df['Price'] = pd.cut(df['Price'],bins=w,labels=['低','便宜','划算','中等','高'],ordered=True)
df['Price'].hist()
plt.show()

python数据分析之数据清洗(以摩托车的销售情况数据为例)

参考

去重复
https://blog.csdn.net/dzysunshine/article/details/100022994
箱线图
https://blog.csdn.net/sscc_learning/article/details/78771324

Original: https://blog.csdn.net/qq_51539256/article/details/122740971
Author: 英雄各有见
Title: python数据分析之数据清洗(以摩托车的销售情况数据为例)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/750949/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Numpy数值计算

    1.Numpy数组 1.1创建数组 (1)array函数 (2)arange函数 (3)linspace函数 (4)logspace函数 (5)zeros函数 (6)ones函数 …

    Python 2023年8月25日
    045
  • Android — 每日一问:回调函数和观察者模式的区别?

    知识点 观察者模式 网上很容易查到观察者模式的定义:观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 Andro…

    Python 2023年9月30日
    057
  • 第十四届蓝桥杯第一期模拟赛 python

    蓝桥杯官方给了一个机会给我们可以尝试这个第一期模拟赛,那我们就试一下吧,学习学习一下,也给大家一点借鉴嘻嘻,也都不一定对哦,仅供参考。 2022/11/8,填空题已完成 2022/…

    Python 2023年7月31日
    074
  • 机器学习课后练习题(期末复习题目附答案)

    此为第一章绪论部分 正确答案: A 下面哪种说法有关机器学习的认识是错误的?( ) A. 高质量的数据、算力和算法对一个机器学习项目是必不可少的。 B. 深度学习是机器学习的一类高…

    Python 2023年9月30日
    081
  • Python框架-Flask

    Flask作为主流的框架之一,是每个程序员必不可少掌握的, 使用python语言基于Werkzeug工具箱编写的轻量级Web开发框架;本身相当于一个内核, 其他几乎所有的功能都要用…

    Python 2023年8月9日
    040
  • 从源码入手探究一个因useImperativeHandle引起的Bug

    今天本来正在工位上写着一段很普通的业务代码,将其简化后大致如下: function App(props: any) { // 父组件 const subRef = useRef(n…

    Python 2023年10月17日
    037
  • elasticsearch聚合之bucket terms聚合

    1. 背景 2. 前置条件 2.1 创建索引 2.2 准备数据 3. 各种聚合 3.1 统计人数最多的2个省 3.1.1 dsl 3.1.2 运行结果 3.2 统计人数最少的2个省…

    Python 2023年10月15日
    036
  • ansible playbook 转换成role格式

    app.py inventory.txt playbook.yml roles flask_web mysql_db python defaults files handlers …

    Python 2023年8月14日
    051
  • 单臂路由

    1、我们将一个局域网中的网络划分为多个不同的虚拟局域网,这样可以减少广播帧的泛洪,也便于网络的管理。 2、同一个网段的不同vlan不能通信,不同网段的同一vlan不能通信。只有同一…

    Python 2023年6月15日
    0109
  • JDK19新特性使用详解

    JDK19于 2022-09-20发布 GA版本,本文将会详细介绍 JDK19新特性的使用。 新特性列表 新特性列表如下: JPE-405: Record模式(预览功能) JPE-…

    Python 2023年10月21日
    038
  • 人生苦短,我用python

    报表!报表! 代码去哪儿了 乱码 复杂查询 人生苦短,我用python 实战案例 结语 参考 本文共计3252字,感谢您的阅读,预计阅读时长3min。 人生苦短,我用python。…

    Python 2023年10月22日
    035
  • 无人驾驶-控制-阿克曼模型

    阿克曼模型推导 一、序论 1.1 研究目的 运动学是从几何学的角度研究物体的运动规律,包括物体在空间的位置、速度等随时间而产生的变化,因此,车辆运动学模型应该能反映车辆位置、速度、…

    Python 2023年9月30日
    046
  • python入门基础(3) 字符串、列表访问

    一、列表 列表由一系列按特定顺序排列的多个元素或空元素组成,包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;列表中各元素间可以没有任何关系;实际使用过程中,通常给列表指定…

    Python 2023年5月24日
    069
  • python plt图片保存emf类型_如何获得emf/wmf格式的matplotlib图形?

    下面是我创建WMF和SVG的解决方案。您可以安装Inkscape并使用以下类,’SaveAndClosePlot’创建SVG,然后使用它转换为WMF的Ink…

    Python 2023年9月5日
    0138
  • python学习:各种推导式玩法-推导式套路

    除了最简单的列表推导式和生成器表达式,其实还有字典推导式、集合推导式等等。 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式。 variable = [out_ex…

    Python 2023年11月1日
    026
  • SpringSession+Redis实现【分布式Session】

    什么是Spring Session SpringBoot整合Spring-Session的自动配置可谓是开箱即用,极其简洁和方便。这篇文章即介绍SpringBoot整合Spring…

    Python 2023年9月7日
    049
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球