机器学习库:pandas

  

☁️主页 Nowl

🔥专栏《机器学习实战》 《机器学习》

📑君子坐而论道,少年起而行之 

文章目录

写在开头

基本数据格式

DataFrame

数据选取

iloc

数据描述

head

describe

数据合并

merge

数据删除

drop

drop删除多列

处理缺失值

查找缺失值

填充缺失值


写在开头

在机器学习中,我们除了关注模型的性能外,数据处理更是必不可少,本文将介绍一个重要的数据处理库pandas,将随着我的学习过程不断增加内容

基本数据格式

pandas提供了两种数据类型:Series和DataFrame,在机器学习中主要使用DataFrame,我们也重点介绍这个

DataFrame

dataframe是一个二维的数据结构,常用来处理表格数据

使用代码

import pandas as pda = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}p = pd.DataFrame(a, index=None)
print(p)

dataframe是一个二维表格,包含行与列的信息

数据选取

iloc

我觉得pandas里面选取数据的一个很通用的方法是iloc

pd.iloc[行序号, 列序号]

iloc的参数用逗号隔开,前面是行序号,后面是列序号

import pandas as pda = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}p = pd.DataFrame(a, index=None)
print(p)
print("iloc示例:")
print(p.iloc[0, 0])
print(p.iloc[2, 0])

iloc也支持切片操作

import pandas as pda = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}p = pd.DataFrame(a, index=None)
print(p)
print("iloc切片:")
print(p.iloc[0:4, 0])

这会打印第一列的0到3行

数据描述

head可以查看指定前几行的值,这方便在处理一些大数据集时,我们可以只加载几列来了解数据集而不必加载整个数据集

import pandas as pda = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}p = pd.DataFrame(a, index=None)print(p.head(2))

我们这里指定显示前2行,不指定默认值是前5行 

describe

describe方法可以描述表格所有列的数字特征,中位数,平均值等

import pandas as pda = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}p = pd.DataFrame(a, index=None)print(p.describe())

不会处理字符串值哦

数据合并

设想一下,我们有一个员工姓名和工号的表格,我们还有一个员工姓名和性别的表格,我们想把这两个表通过员工姓名合在一起,怎么实现呢

merge

merge函数可以指定以某一列来合并表格

import pandas as pd# 创建两个示例 DataFrame
df1 = pd.DataFrame({'name': ['A', 'B', 'C', 'D'],'number': [12335, 23212, 33432, 44678]})df2 = pd.DataFrame({'name': ['A', 'B', 'C', 'D'],'sex': ['F', 'F', 'M', 'F']})# 使用 merge 合并两个 DataFrame
merged_df = pd.merge(df1, df2, on='name')
print(merged_df)

on='name'指定函数以name这一列来合并表格 

数据删除

在机器学习竞赛时,有时我们想删除一些无用特征,怎么实现删除无用特征的列呢?

drop

以上一节的员工表格为例,增添以下代码

merged_df = merged_df.drop(columns="number")
print(merged_df)

可以看到number列被删除了

drop删除多列

要想删除多列,仅需要将列的名字放在一个列表里

merged_df = merged_df.drop(columns=["number", "sex"])
print(merged_df)

注意:在使用drop时,如果只写df.drop()是没有用的,你必须像上面两个例子一样,将drop后的df表格赋值给原来的表格。

处理缺失值

查找缺失值

isnull可以查找是否有缺失值,配合sum函数可以统计每一列缺失值的数量

import pandas as pda = {"a": [1, 3, np.NAN, 3], "b": [3, 4, 2, 1]}p = pd.DataFrame(a, index=None)print(p.isnull().sum())

填充缺失值

因为有些机器学习模型无法处理缺失值,我们必须将缺失值补充好,可以用0填充,也可以用平均值填充,代码如下

# 0填充
print(p.fillna(0))
# 平均值填充
print(p.fillna(p["a"].mean()))

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

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

相关文章

SpringBoot进阶——解释springboot的自动配置原理

相关的博客文章如下: SpringBootApplication注解的理解——如何排除自动装配 & 分布式情况下如何自动加载 & nacos是怎么被发现的 引出 1.spring.factories文件存储能够进行自动配置的Bean信息; 2.EnableAutoConfiguration关闭数据源的自动配置…

Flask学习二:项目拆分、请求与响应、cookie

教程 教程地址: 千锋教育Flask2框架从入门到精通,Python全栈开发必备教程 老师讲的很好,可以看一下。 项目拆分 项目结构 在项目根目录下,创建一个App目录,这是项目下的一个应用,应该类似于后端的微服…

灯塔的安装

Docker 安装 docker 安装参考:https://docs.docker.com/engine/install/ shell脚本: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh灯塔安装 mkdir docker-ARL;cd docker-ARL curl https://bootstrap.pypa.io/get-pip.py -o get-pip…

【Linux学习】基础IO

目录 八.系统文件IO 8.1 前言 8.2 C语言文件IO C语言常用的基本函数 C语言默认打开的的三个流 8.3 系统文件IO open接口 close接口 write接口 read接口 8.4 C语言文件IO与系统文件IO的关系 八.系统文件IO 8.1 前言 系统文件 I/O(输入/输出)是指在…

pandas 如何获取dataframe的行的数量

pandas的dataframe提供了多种方法获取其中数据的行的数量,本偏文章就是介绍几种获取dataframe行和列出量的方法。 为了能够详细说明如何通过代码获取dataframe的行数和列数,需要先创建一个dataframe如下: import pandas as pdtechnologies …

C++设计模式之策略模式

策略模式 介绍示例示例测试运行结果应用场景优点总结 介绍 策略模式是一种行为设计模式。在策略模式中,可以创建一些独立的类来封装不同的算法,每一个类封装一个具体的算法,每一个封装算法的类叫做策略(Strategy),为了保证这些策…

NX二次开发UF_CURVE_ask_wrap_curve_parents 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_wrap_curve_parents Defined in: uf_curve.h int UF_CURVE_ask_wrap_curve_parents(tag_t curve_tag, tag_t * defining_face, tag_t * defining_plane, tag_t * defin…

18. Python 数据处理之 Numpy

目录 1. 简介2. 安装和导入Numpy3. ndarray 对象4. 基本运算5. 索引、切片和迭代6. 条件和布尔数组7. 变换形状8. 操作数组 1. 简介 数据分析的流程概括起来主要是:读写、处理计算、分析建模和可视化4个部分。 Numpy 是Python 进行科学计算,数据分析时…

MySQL进阶_10.锁

文章目录 一、概述二、MySQL并发事务访问相同记录2.1、读-读2.2、写-写2.3、读-写2.4、并发问题的解决方案 三、锁的不同角度分类3.1、 读锁、写锁3.1.1、 锁定读 3.2、表级锁、页级锁、行锁3.2.1、表锁3.2.2、意向锁3.2.2.1、意向锁的作用3.2.2.2、意向锁的互斥性 3.2.3、自增…

2019年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题

文章目录 2019年考研英语二真题SectionⅠ Use of EnglishSection II Reading ComprehensionText 121——细节信息题22——细节信息题23——细节信息题24——细节信息题25——词义题 Text 226——细节信息题27——细节信息题28——细节信息题29——细节信息题30——态度题 Text …

springboot2.0 集成swagger3+Knife4j导出离线API 配置

springboot 版本2.3.1 一、集成swagger3 引入swagger依赖包 <!--swagger3集成--><dependency><groupId>org.springframework.plugin</groupId><artifactId>spring-plugin-core</artifactId><version>2.0.0.RELEASE</version>…

Linux面试题(三)

目录 34、du 和 df 的定义&#xff0c;以及区别&#xff1f; 35、awk 详解。 36、当你需要给命令绑定一个宏或者按键的时候&#xff0c;应该怎么做呢&#xff1f; 37、如果一个 linux 新手想要知道当前系统支持的所有命令的列表&#xff0c;他需要怎么做&#xff1f; 38、…

第一百八十一回 如何绘制阴影效果

文章目录 1. 概念介绍2. 使用方法2.1 SegmentedButton2.2 ButtonSegment 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 1. 概念介绍 我们在本章回中介绍的SegmentedButton组件是一种分段式按钮&#xff0c;它把多个按钮连接成一组显示&#xff0c;组内再对不同的按钮进…

[计算机网络]应用层概述

0.写在前面: 该层为教学模型的最后一层,某种意义上来说是最接近各位开发者的一层,正因如此,这层中的很多定义和概念大家都有属于自己的理解, 完全按照书本反而才是异类,因此在这里我会去结合我做前端开发的一些经验,来处理和讲解一些概念,另外本层中的部分协议也不会过多阐述了…

VUE简易购物车程序

目录 效果预览图 完整代码 效果预览图 完整代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

Python 进阶(十一):高精度计算(decimal 模块)

《Python入门核心技术》专栏总目录・点这里 文章目录 1. 导入decimal模块2. 设置精度3. 创建Decimal对象4. 基本运算5. 比较运算6. 其他常用函数7. 注意事项8. 总结 大家好&#xff0c;我是水滴~~ 在进行数值计算时&#xff0c;浮点数的精度问题可能会导致结果的不准确性。为了…

【Amazon】通过直接连接的方式导入 KubeSphere集群至KubeSphere主容器平台

文章目录 一、设置主集群方式一&#xff1a;使用 Web 控制台方式二&#xff1a;使用 Kubectl命令 二、在主集群中设置代理服务地址方式一&#xff1a;使用 Web 控制台方式二&#xff1a;使用 Kubectl命令 三、登录控制台验证四、准备成员集群方式一&#xff1a;使用 Web 控制台…

第六届 传智杯初赛B组

文章目录 A. 字符串拼接&#x1f37b; AC code B. 最小差值&#x1f37b; AC code C. 红色和紫色&#x1f37b; AC code D. abb&#x1f37b; AC code E. kotori和素因子&#x1f37b; AC code F. 红和蓝&#x1f37b; AC code &#x1f970; Tips&#xff1a;AI可以把代码从 j…

Android获取原始图片Bitmap的宽高大小尺寸,Kotlin

Android获取原始图片Bitmap的宽高大小尺寸&#xff0c;Kotlin val options BitmapFactory.Options()options.inJustDecodeBounds trueval decodeBmp BitmapFactory.decodeResource(resources, R.mipmap.p1, options)//此时&#xff0c;decode出来的decodeBmp宽高并不是原始图…

C++通讯录管理系统

目录 系统需求 1、 创建项目 2、 菜单功能设计 3、 退出功能设计 4、 添加联系人功能设计 4.1 设计联系人结构体 4.2 设计通讯录结构体 4.3 在main函数中创建通讯录 4.4 封装添加联系人函数 4.5 添加联系人功能测试 5、 显示联系人功能设计 5.1 封装显示…