【数据预处理】基于Pandas的数据预处理技术【前七个任务】

news2024/11/18 21:42:03

文章目录

  • 一.需求分析
  • 二.需求解决
    • 2.1 本次实验以california_housing加州房价数据集为例,下载数据集
    • 2.2 查看数据集的描述、特征及目标数据名称、数据条数、特征数量
    • 2.3 将数据读入pandas的DataFrame并转存到csv文件
    • 2.4 查看数据集各个特征的类型以及是否有空值
    • 2.5 对数据集做中心化度量:计算各个特征的中位数和均值,分析中位数和均值情况
    • 2.6 对数据集做离散化度量:对第一个特征(收入中位数)画盒图(箱线图),检查孤立点(离群点)并进行分析
    • 2.7 【选做】对所有特征画盒图(箱线图),检查孤立点(离群点)并进行分析

一.需求分析

本文主题:基于Pandas的数据预处理技术

本次任务共分为16个任务,将其分为前七个任务和后11个任务,本文探讨其前七个任务。

本文的源代码下载链接:

基于Pandas的数据预处理技术-源代码-机器学习文档类资源-CSDN文库

https://download.csdn.net/download/weixin_52908342/87337635

本次实验内容:

  1. 本次实验以california_housing加州房价数据集为例,下载数据集

  2. 查看数据集的描述、特征及目标数据名称、数据条数、特征数量

  3. 将数据读入pandas的DataFrame并转存到csv文件

  4. 查看数据集各个特征的类型以及是否有空值

  5. 对数据集做中心化度量:计算各个特征的中位数和均值,分析中位数和均值情况

  6. 对数据集做离散化度量:对第一个特征(收入中位数)画盒图(箱线图),检查孤立点(离群点)并进行分析

  7. 【选做】对所有特征画盒图(箱线图),检查孤立点(离群点)并进行分析

  8. 对第一个特征(收入中位数)排序后画散点图

  9. 对第一个特征(收入中位数)画分位数图并分析

  10. 【选做】对所有特征画分位数图并进行分析

  11. 使用散点图、使用线性回归方法拟合第一个特征(收入中位数)并分析

  12. 【选做】使用局部回归(Loess)曲线(用一条曲线拟合散点图)方法拟合第一个特征(收入中位数)数据

  13. 对第一个特征(收入中位数)画分位数-分位数图并分析

  14. 对第一个特征(收入中位数)画直方图,查看数据的分布和数据倾斜情况

  15. 【选做】对所有特征画直方图,查看数据的分布和数据倾斜情况

  16. 寻找所有特征之间的相关性并找出相关性大于 0.7 的特征对,做特征规约

二.需求解决

2.1 本次实验以california_housing加州房价数据集为例,下载数据集

本次实验以california_housing加州房价数据集为例,下载数据集,先将数据集保存下来,输出查看一下。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_california_housing
housing=fetch_california_housing()
print(housing.keys())

以california_housing加州房价数据集为例,下载数据集,先将数据集保存下来,输出查看一下。运行结果如下:

img

2.2 查看数据集的描述、特征及目标数据名称、数据条数、特征数量

在做完上面的下载数据集操作之后将其保存下来,查看数据集的描述、特征及目标数据名称、数据条数、特征数量。输出一下查看效果:

print(housing['DESCR'])
print(housing['feature_names'])
print(housing['target_names'])
X=housing.data
y=housing.target
print('y:',y.shape,y)
print('X:',X.shape,X)

查看数据集的描述、特征及目标数据名称、数据条数、特征数量。效果如下:

img

2.3 将数据读入pandas的DataFrame并转存到csv文件

我们做完上述步骤数据集的描述、特征及目标数据名称、数据条数、特征数量,将数据读入pandas的DataFrame并转存到csv文件,代码如下:

import pandas as pd
df=pd.DataFrame()
for i in range (X.shape[1]):
    df[housing.feature_names[i]]=X[:,i]
df["target"]=y
df.to_csv('cali-housing.csv',index=None

将数据读入pandas的DataFrame并转存到csv文件截图如下:

img

2.4 查看数据集各个特征的类型以及是否有空值

函数df.info ()作用:数据表的基本信息(维度,列名称,数据格式,所占空间等)。

Pandas dataframe.info()函数的作用是获取一个简洁的dataframe摘要。当对数据进行探索性分析时,它非常方便。为了快速浏览数据集,我们使用dataframe.info()函数。

这个任务需求比较简单哈: 查看数据集各个特征的类型以及是否有空值,只需要一行函数:

df.info()

参数:

verbose:是否打印完整的摘要信息。None遵循display.max_info_columns设置。True或False覆盖显示.max_info_columns设置。

Buf:可写缓冲区,默认为sys.stdout

max_cols:确定打印完整摘要还是简短摘要。None遵循display.max_info_columns设置。

memory_usage:指定是否显示DataFrame元素(包括索引)的总内存使用量。None遵循display.memory_usage设置。True或False覆盖显示.memory_usage设置。’ deep ‘的值相当于True,具有深度内省功能。内存使用以人类可读的单位(base-2表示)表示。

null_counts:是否显示非空计数。如果None,则仅显示帧是否小于max_info_rows和max_info_columns。如果为True,则总是显示计数。如果是False,永远不要显示计数。

查看数据集各个特征的类型以及是否有空值,截图如下:

img

2.5 对数据集做中心化度量:计算各个特征的中位数和均值,分析中位数和均值情况

这个任务需求也是非常的简单,我们对数据集做中心化度量:计算各个特征的中位数和均值,分析中位数和均值情况,只需要调用describe函数:

df.describe()

describe函数:用于生成描述性统计数据,统计数据集的集中趋势,分散和行列的分布情况,不包括 NaN值。

参数:

percentiles:赋值类似列表形式,可选
表示百分位数,介于0和1之间。默认值为 [.25,.5,.75],分别返回第25,第50和第75百分位数。 可自定义其它值,用法为df.describe(percentiles=[.xx])。
include:‘all’,类似于dtypes列表或None(默认值),可选
要包含在结果中的数据类型的白名单。对于Series不可用。以下是选项:
‘all’:输入的所有列都将包含在输出中。
类似于dtypes的列表:将结果限制为提供的数据类型。将结果限制为数字类型用法:numpy.number。要将其限制为对象列用法:numpy.object。字符串也可以以select_dtypes(例如df.describe(include=['O']))的方式使用。要选择分类类型,请使用'category'
无(默认):结果将包括所有数字列。
exclude:类似于dtypes列表或None(默认值),可选,
要从结果中除去的黑名单数据类型列表。Series不可用。以下是选项:
类似于dtypes的列表:从结果中排除提供的数据类型。排除数值类型用法:numpy.number。要排除对象列,使用numpy.object。字符串也可以以select_dtypes(例如df.describe(include=['O']))的方式使用。要排除分类类型,请使用'category'
无(默认):结果将不包含任何内容。

对数据集做中心化度量:计算各个特征的中位数和均值,分析中位数和均值情况,运行结果截图:

img

2.6 对数据集做离散化度量:对第一个特征(收入中位数)画盒图(箱线图),检查孤立点(离群点)并进行分析

对数据集做离散化度量:对第一个特征(收入中位数)画盒图(箱线图),检查孤立点(离群点)并进行分析。

考虑使用boxplot进行中心化和离散化度量,代码如下:

import matplotlib.pyplot as plt
plt.boxplot(X[:,0],showmeans=True,meanline=True)
plt.show()

运行结果如下:

img

df['AveBedrms'].dropna().sort_values().tail(10)

运行结果如下:

img

2.7 【选做】对所有特征画盒图(箱线图),检查孤立点(离群点)并进行分析

我们挑战一下这个简单的选做需求:【选做】对所有特征画盒图(箱线图),检查孤立点(离群点)并进行分析

人均收入(MedInc)、房龄(HouseAge)、房间数(AveRooms)、卧室数(AveBedrooms)、小区人口数(Population)、
房屋居住人数(AveOccup)、小区经度(Longitude)、小区纬度(Latitude)

使用boxplot进行中心化和离散化度量:

import matplotlib.pyplot as plt
plt.figure(figsize=(12,12))
for i in range(8):
    plt.subplot(4, 2, i+1)
    plt.boxplot(X[:,i],showmeans=True,meanline=True)
plt.show()

运行效果截图:

img

从上面的8个特征值的盒图观察可以看到人均收入(MedInc)、房龄(HouseAge)、房间数(AveRooms)、卧室数(AveBedrooms)、小区人口数(Population)、房屋居住人数(AveOccup)、小区经度(Longitude)、小区纬度(Latitude),这些特征在加州房价数据的盒图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111078.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

五年经验的前端社招被问:CPU 和 GPU 有什么区别?

CPU 和 GPU 的设计目标和整体架构的区别分析,并在全文最后使用通俗的例子做比喻帮助理解。 首先来看 CPU 和 GPU 的百科解释: CPU(Central ProcessingUnit,中央处理器):功能主要是解释计算机指令以及处理计…

【工作流Activiti7】2、Activiti7 与 Spring Boot 及 Spring Security 整合

1. 前言 其实,选择用Activiti7没别的原因,就是因为穷。但凡是有钱,谁还用开源版的啊,当然是用商业版啦。国外的工作流引擎没有考虑中国的实际情况,很多像回退、委派、撤销等等功能都没有,所以最省事的还是…

若依前后端分离框架去掉首页 登录后跳转至动态路由的第一个路由

若依前后端分离框架去掉首页 登录后跳转至动态路由的第一个路由若依框架VUE前端界面,登录后默认跳转至动态路由第一路由(第一个子菜单)一、登录后跳转第一路由界面二、设置路由的首页路径,方便后续的获取三、点击若依的logo跳转的…

字符串函数(4)--strtok函数和strerror函数

1.strtok函数 — 分割字符串函数 2.strerror函数 — 错误报告函数 1.strstok函数的用法 char* strtok(char* str, const char* delimiters);直接看函数的声明: 参数1:要切割的地址,参数2:切割时的标记物 注意:strt…

单链表的python实现

首先说下线性表,线性表是一种最基本,最简单的数据结构,通俗点讲就是一维的存储数据的结构。 线性表分为顺序表和链接表: 顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,称为线性表的顺序存储结构或…

Nginx安装配置及vue项目部署【Centos7】

Background 网上好多都是源码安装,各种编译环境安装配置,感觉太麻烦了,这里直接下载一个rpm包就行了,离线安装也方便。 1、nginx rpm包下载 选择你要使用的版本下载。 nginx官方下载地址:http://nginx.org/packages/ce…

垃圾回收机制

1.什么场景下该使用什么垃圾回收策略? (1).对内存要求苛刻的场景 想办法提高对象的回收效率,尽可能的多回收一些对象,腾出更多内存 (2).在CPU使用率较高的情况下 降低高并发时垃圾回收频率,让CPU更多地去执行业务而不是垃圾回收 …

一文搞懂 Redis 架构演化之路

现如今 Redis 变得越来越流行,几乎在很多项目中都要被用到,不知道你在使用 Redis 时,有没有思考过,Redis 到底是如何稳定、高性能地提供服务的? 我使用 Redis 的场景很简单,只使用单机版 Redis 会有什么问…

vite + react +typescript 环境搭建,小白入门级教程

目录前言1. 使用 vite 创建 react 项目1. npm / yarn 命令初始化2. 输入项目名称3. 选择框架4. 选择 Js / Ts5. 项目创建完成6. 启动项目2. 规范项目目录3. 使用 react-router-dom 路由1. 使用 npm / yarn 命令下载2. 更改 react-router-dom 版本1. 通过 npm 命令降低版本2. 手…

rabbitmq基础5——集群节点类型、集群节点基础运维,集群管理命令,API接口工具

文章目录一、集群节点类型1.1 内存节点1.2 磁盘节点二、集群基础运维2.1 剔除单个节点2.1.1 集群正常踢出正常节点2.1.2 服务器异常宕机踢出节点2.1.3 集群正常重置并踢出节点2.2 集群节点版本升级2.3 集群某单节点故障恢复2.3.1 机器硬件故障2.3.2 机器掉电2.3.3 网络故障2.3.…

Android ShapeableImageView使用

ShapeableImageView使用使用 导包 implementation com.google.android.material:material:1.4.0属性 属性描述shapeAppearance样式shapeAppearanceOverlay样式,叠加层strokeWidth描边宽度strokeColor描边颜色 样式 名称属性值描述cornerFamilyrounded圆角cut裁剪…

学习记录-mybatis+vue+elementUi实现品牌查询

和以往不同的是,这一次使用了vue和axios来接收后端传过来的参数,并且新建了impl文件来继承service层的接口。该过程实现一共分为4步骤 步骤一 ①mapper mapper 写mapper接口 其实就是写SQL语句了,第一步就是写SQL。这里使用的是注解开发&…

程序员危机如何化解?

很多人认为程序员一定要干到管理层,才会有继续走下去的希望,而踏实做技术的程序员,只会面临淘汰。事实真是如此吗? △ 截图来源脉脉,如侵删 先不说结论,我们一起先看看网友们的看法: △ 截…

报表控件Stimulsoft v2023.1全新发布 | 附免费下载试用

Stimulsoft Ultimate 宣布发布新版本2023.1!在最新版本中添加了对Razor Pages的支持、新的数据监视器可视化工具、为PHP和Blazor平台更新了组件,欢迎下载试用! Stimulsoft Ultimate官方正版下载 Razor Pages 在 2023.1.1 版中,我们添加了对…

跨域问题以及解决跨域问题的vue-cli解决方案

跨域问题 写项目前要问后端,接口支持跨域吗? 支持就不会出现问题,不支持就需要解决跨域问题 1.如何判断一个浏览器的请求是否跨域? 在A地址(发起请求的页面地址)向B地址(要请求的目标页面地址)发起请求时&#xff…

【JavaEE】多线程(三)线程的状态

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaEE】 ✈️✈️本篇内容:线程的状态,线程安全问题! 🚀🚀代码存放仓库gitee:JavaEE初阶代码存放&a…

抗癌药物之多肽药物偶联物技术(PDC)介绍

长期以来,心血管疾病是全球中年人死亡的主要原因。这种情况最近在高收入国家发生了变化,现在癌症导致的死亡人数是心血管疾病的两倍。2018 年,癌症导致全球 960 万人死亡,1810 万新病例被诊断出来。女性最常发生的癌症是乳腺癌&am…

12Python继承与多态

继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中继承 实现代码的重用,相同的代码不需要重复的编写多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度 1继承的概念、语法和特点 继承的概…

奖项快报 | ALVA Systems 上榜 《2022 高成长企业 TOP100》!

近日,《2022 高成长企业 TOP 100》榜单发布,凭借卓越的创新能力与在工业 AR 领域的赋能价值,ALVA Systems 在2022年度高成长企业TOP100大赛活动中脱颖而出,成功入选榜单。 *ALVA Systems 入选榜单 创新驱动,赋能数字经…

【ARM -- stm32 汇编代码点亮LED灯】

ARM -- stm32 汇编代码点亮LED灯实现过程查询开发手册分析RCC章节分析GPIO章节编写代码实现过程 查询开发手册 分析RCC章节 一、确定RCC基地址 二、分析RCC_MP_AHB4ENSETR寄存器 1、RCC_MP_AHB4ENSETR寄存器的功能是使能GPIO组相关控制器; 2、RCC_MP_AHB4ENSET…