热门标签 | 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

希望与广大网友互动??

点此进行留言吧!



推荐阅读
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 如何将Python与Excel高效结合:常用操作技巧解析
    本文深入探讨了如何将Python与Excel高效结合,涵盖了一系列实用的操作技巧。文章内容详尽,步骤清晰,注重细节处理,旨在帮助读者掌握Python与Excel之间的无缝对接方法,提升数据处理效率。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 如何使用mysql_nd:Python连接MySQL数据库的优雅指南
    无论是进行机器学习、Web开发还是爬虫项目,数据库操作都是必不可少的一环。本文将详细介绍如何使用Python通过 `mysql_nd` 库与 MySQL 数据库进行高效连接和数据交互。内容涵盖以下几个方面: ... [详细]
  • PHP开发人员薪资水平分析:工程师平均工资概况
    PHP开发人员薪资水平分析:工程师平均工资概况 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • Navicat Premium 12 连接 Oracle 数据库时出现 ORA-03113 错误:通信通道上的文件结束。进程ID:3344,会话ID:244,序列号:56707
    在使用 Navicat Premium 12 连接 Oracle 数据库时,遇到了 ORA-03113 错误,提示“通信通道上的文件结束”。具体错误信息显示进程ID为3344,会话ID为244,序列号为56707。经初步分析,该错误可能是由于数据库曾被强制关闭,导致文件状态不一致所致。通过关闭并重新建立数据库连接,问题得以顺利解决。此解决方案适用于类似情况,建议在遇到此类错误时,首先检查数据库的运行状态和日志记录,以确保数据的一致性和完整性。 ... [详细]
  • 掌握这些技巧,轻松获取超过90%的资源信息
    在数字时代,高效获取所需资源是每个人必备的技能。本文将分享一系列实用技巧,帮助读者轻松获取超过90%的网络资源信息,无论是学术资料、技术文档还是最新资讯,都能迅速找到。通过优化搜索引擎使用、利用专业数据库和社群资源等方法,读者将能够在信息海洋中游刃有余。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
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社区 版权所有