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

希望与广大网友互动??

点此进行留言吧!



推荐阅读
  • 大数据核心技术解析
    本文深入探讨了大数据技术的关键领域,包括数据的收集、预处理、存储管理、以及分析挖掘等方面,旨在提供一个全面的技术框架理解。 ... [详细]
  • 数据集成策略:ETL与ELT架构对比及工具选择
    随着企业信息化的深入发展,‘数据孤岛’问题日益突出,阻碍了数据的有效利用与整合。本文探讨了如何通过构建数据仓库解决这一问题,重点分析了ETL与ELT两种数据处理架构的特点及适用场景,为企业选择合适的ETL工具提供了指导。 ... [详细]
  • Python库在GIS与三维可视化中的应用
    Python库极大地扩展了GIS的能力,使其能够执行复杂的数据科学任务。本文探讨了几个关键的Python库,这些库不仅增强了GIS的核心功能,还推动了地理信息系统向更高层次的应用发展。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 解决getallheaders函数导致的500错误及8种服务器性能优化策略
    本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文旨在探讨机器学习与数据分析之间的差异,不仅在于它们处理的数据类型,还包括技术背景、业务应用场景以及参与者的不同。通过深入分析,希望能为读者提供清晰的理解。 ... [详细]
  • 本文由蕤内撰写,明亮公司出品,探讨了日本零售业在数字化转型中的现状与挑战。文章基于与两位在日本的投资人的深入对话,分析了日本零售业为何仍然依赖传统的POS机系统,以及中日两国在品牌建设和数字化营销上的差异。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 本文介绍如何利用 Python 的 Pandas 库中的 PeriodIndex 属性来获取指定日期范围内的每个月份的天数。 ... [详细]
  • 探索Python编程的价值与应用
    本文探讨了学习Python的重要性和广泛的应用场景,从个人技能提升到职业发展的多个方面进行了详细解析。 ... [详细]
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社区 版权所有