热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python实验二数据预处理_数据清洗与预处理Python实现

这个Python版本必须是3.7的首先讲一下数据清洗与预处理的定义在百度百科中的定义是-数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性

这个Python版本必须是3.7的

首先讲一下数据清洗与预处理的定义

在百度百科中的定义是 - 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。

我自己理解的是,在我们不管是机器学习建模还是进行数据分析或者数据挖掘操作,我们首先都需要对数据进行预处理。我们拿到手的初始数据往往会存在缺失值、重复值、异常值或者错误值,影响实验结果,我们就需要进行数据清洗。或者是想要保持数据的一致性,也可以数据清洗。有时数据的原始变量不满足分析的要求,我们需要先对数据进行一定的处理,也就是数据的预处理。

数据清洗与预处理的目的是提高数据的质量,提高实验结果的可靠度。

连接数据库

import numpy as np

from pandas import DataFrame

import pandas as pd

import matplotlib.pyplot as plt

导入数据集

假设我们有一个已知的数据集如下:

{state’:[‘a’,‘b’,‘c’,‘a’,‘b’,‘c’],

‘year’:[2018,2016,2017,2018,2016,2017],

‘average’:[87,85,88,87,85,88]},

from pandas import DataFrame

#导入数据集

data = {'state':['a','b','c','a','b','c'],

'year':[2333,2019,2617,2333,2016,2617],

'avgage':[55,85,89,55,85,89]

}

frame = DataFrame(data,columns=['year','state','avgage'])

#DataFrame是一种表格型数据结构,具有行索引,也有列索引。列索引为year、state、avgage

print('原始数据:')

print(frame)

也可以读入数据集(csv文件)

datasets = pd.read_csv('my_data.csv')

发现重复与冗余

frame.duplicated().any

frame.drop_duplicates() # 删除重复值,会删除除第一条后的,默认对所有变量判断

frame.duplicated().count

处理缺失值

frame.isnull().any(axis=0)# 判断各变量中是否存在缺失值

frame.isnull().sum(axis=0)# 各变量中缺失值的数量

frame.fillna()#就是使用指定的方法填充NA / NaN值,填充为0

frame.count()#是用来计算每一列或每一行的非na细胞,会返回对于每一列/行,非na /null项的数量

均值和自定义函数,比较麻烦单独说一下

#第一列指定众数填充,第二列使用众数,第三列使用均值。

#关于均值,frame.mean(),但是列中含有NA / NaN,无法评判什么类型,取第一个众数,来填充state列

#众数就是frame.mode函数。

frame.fillna(frame.mean())

frame['state'].fillna(frame.mode()['state'][0])

#运用自定义函数来填充, 假设自定义函数就是取众数的第一个值

fi=lambda x:x.fillna(x.mode()[0])

f=frame.apply(fi)

print('填充之后的结果:')

print(f)

数据集成

就需要不止一个的数据集

pd.merge(left, right, how='inner'/'left'/'right', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True

, suffixes=('_x', '_y'), copy=True, indicator=False)

pd.concat([df1,df2,df3], ignore_index=True)#concat函数是在 pandas底下的方法,可以将数据根据不同的轴作简单的融合

pd.concat([df1,df2,df3], ignore_index=True,axis= 1)#当axis = 1的时候,concat就是行对齐,然后将不同列名称的两张表合并

数据变换(统一格式并标准化)

简单函数变换的常见方法:平方、开方、对数、差分运算等。

标准化、归一化、离散化。

d625967e308c41c05d8143ae2994f301.png

f = lambda x: ( x - min(x) )/ ( max(x) - min(x) )

#tranform()的作用是通过找中心和缩放等实现标准化

['optional'].transform(f)

f = lambda x: ( x - x.mean() )/ x.std()

['optional'].transform(f)

其实还可以通过导库实现,会更简单一些。在这里也就不多说了。

制作人:只识闲人不识君

日期:2020.07.14

本文地址:https://blog.csdn.net/weixin_46069678/article/details/107330392

希望与广大网友互动??

点此进行留言吧!



推荐阅读
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • SSAS入门指南:基础知识与核心概念解析
    ### SSAS入门指南:基础知识与核心概念解析Analysis Services 是一种专为决策支持和商业智能(BI)解决方案设计的数据引擎。该引擎能够为报告和客户端应用提供高效的分析数据,并支持在多维数据模型中构建高性能的分析应用。通过其强大的数据处理能力和灵活的数据建模功能,Analysis Services 成为了现代 BI 系统的重要组成部分。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 如何在MySQL中选择合适的表空间以优化性能和管理效率
    在MySQL中,合理选择表空间对于提升表的管理和访问性能至关重要。表空间作为MySQL中用于组织和管理数据的一种机制,能够显著影响数据库的运行效率和维护便利性。通过科学地配置和使用表空间,可以优化存储结构,提高查询速度,简化数据管理流程,从而全面提升系统的整体性能。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 机器学习中的标准化缩放、最小-最大缩放及鲁棒缩放技术解析 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 在前一篇文章《Hadoop》系列之“踽踽独行”(二)中,我们详细探讨了云计算的核心概念。本章将重点转向物联网技术,全面解析其基本原理、应用场景及未来发展前景。通过深入分析物联网的架构和技术栈,我们将揭示其在智能城市、工业自动化和智能家居等领域的广泛应用潜力。此外,还将讨论物联网面临的挑战,如数据安全和隐私保护等问题,并展望其在未来技术融合中的重要角色。 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
author-avatar
曾经
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有