Pandas get_dummies用法

get_dummies 是 pandas 实现one hot encode的方式

​  one-hot的基本思想:将离散型特征的每一种特征取值都看成一种状态,若指定离散特征中有N个

不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会

使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。

1.语法结构

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None)

参数说明:

data : array-like, Series, or DataFrame
  输入数据
prefix : string, list of strings, or dict of strings, default None
  给输出的列添加前缀,如prefix=“A”,输出的列会显示类似

prefix_sepstr, default ‘_’

​   设置前缀跟分类的分隔符sepration,默认是下划线"_"

dummy_na : bool, default False

​   增加一列表示空缺值,如果False就忽略空缺值

columns : list-like, default None

​   指定需要实现类别转换的列名

sparsebool, default False

  ​ 哑编码列是否应该支持SparseArray (True)或常规NumPy数组(False)。

drop_first : bool, default False

​   获得k中的k-1个类别值,去除第一个

dtypedtype, default np.uint8

​   新列的数据类型,只允许一种类型的dtype

Return

​   DataFrame 返回哑编码后的DataFrame

2.代码示例

2.1 代码示例1

需求:对DataFrame中的所有列进行哑编码

import pandas as pdstudents_df = pd.DataFrame({'Id': [302, 504, 708, 103, 303],'Name': ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],'Sex': ['Male', 'Female', 'Male', 'Male', 'Female'],
})students_df_dummies = pd.get_dummies(students_df)
print(students_df)
print(students_df_dummies)

在这里插入图片描述
在这里插入图片描述

2.2 代码示例2

需求:设置 columns 只为指定的列进行哑编码

import pandas as pdstudents_df = pd.DataFrame({'Id': [302, 504, 708, 103, 303],'Name': ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],'Sex': ['Male', 'Female', 'Male', 'Male', 'Female'],
})
students_df_dummies = pd.get_dummies(students_df, columns=["Sex"])print(students_df)
print(students_df_dummies)

在这里插入图片描述

2.3 代码示例3

需求:设置prefix来修改哑编码后的列

import pandas as pdstudents_df = pd.DataFrame({'Id': [302, 504, 708, 103, 303],'Name': ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],'Sex': ['Male', 'Female', 'Male', 'Male', 'Female'],
})students_df_dummies = pd.get_dummies(students_df, columns=["Sex"], prefix="Column")print(students_df)
print(students_df_dummies)

在这里插入图片描述

3.总结

OneHotEncoder方式之pd.get_dummies得优缺点:

优点:解决了分类器不好处理分类数据的问题,在一定程度上也起到了扩充特征的作用。它的值只有

0和1,不同的类型存储在垂直的空间。

缺点:当类别的数量很多时,特征空间会变得非常大,容易造成维度灾难,尤其是对ID类型特征的处理。

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

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

相关文章

10 Redis的持久化

Redis支持RDB和AOF两种持久化机制 1、RDB(Redis DataBase) 是对命令的全量快照随着key的数量增大,那么写入磁盘的开销也会越来越大 2、RDB文件的生成是否会阻塞主线程 save: 使用save的方式会阻塞主线程,影响redis的性能 bgsave: 一般情况下不会阻塞…

05-networkX-结构洞计算

教程仓库地址:github networkx_tutorial import networkx as nx import matplotlib.pyplot as pltimport pandas as pd import networkx as nxdf pd.read_csv(./df.csv,index_col0) df.head()AB0H04N5H04N71G06F3G02F12G06F3H03K173G02F1H03K174NaNNaN # 检查 A 和…

C语言模拟实现Liunx操作系统与用户之间的桥梁shell(代码详解)

什么是shell? Shell(壳)是指命令行界面(CLI)或脚本语言,它为用户提供了与操作系统交互的方式。它是一个程序,从用户那里接收命令,并通过与操作系统内核交互来执行这些命令。Shell充当…

CDN加速在社会发展中的挑战与机遇

随着互联网的迅猛发展,CDN(内容分发网络)加速技术在网络领域的应用逐渐成为推动社会进步的关键因素之一。CDN加速通过在全球范围内分布的服务器群,将内容快速分发到用户,提升了网络性能和用户体验。然而,CD…

CTFHub Git泄露

Log 前言 根据题目描述,这个题目需要使用到工具 GitHack 来完成,而 CTFHub 上提供的工具需要在 python2 环境中执行,注意 python3 环境无法使用。 GitHack准备(kali Linux) 打开虚拟机 sudo su 以管理员的身份运行…

开源更安全? yum源配置/rpm 什么是SSH?

文章目录 1.开放源码有利于系统安全2.yum源配置,这一篇就够了!(包括本地,网络,本地共享yum源)3.rpm包是什么4.SSH是什么意思?有什么功能? 1.开放源码有利于系统安全 开放源码有利于系统安全 2.yum源配置…

Java 11及更高版本的Oracle JDK版本

2021 年 9 月 14 日,Oracle 发布了可以长期支持的 JDK17 版本,那么从 JDK11 到 JDK17,到底带来了哪些特性呢?亚毫秒级的 ZGC 效果到底怎么样呢?值得我们升级吗?而且升级过程会遇到哪些问题呢?带…

【Spring boot】RedisTemplate中String、Hash、List设置过期时间

文章目录 前言Redis中String设置时间的方法Redis中Hash和List设置时间的方法Redis中Hash的put、putAll、putIfAbsent区别 前言 时间类型:TimeUnit import java.util.concurrent.TimeUnit;TimeUnit.SECONDS:秒 TimeUnit.MINUTES:分 TimeUnit.HOURS&…

Javaweb之Ajax的详细解析

1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序,所以…

cobol基本语法

字符集 包括78个字符 A-Z a-z 0-9 (空格 - * / $ ,(逗号) ;(分号) .(小数点或英文句号) ""(双引号) ((左括号) )(右括号&…

“移动机器人课程群实践创新的困境与突围”素材

以下是一篇应用型本科教研论文“移动机器人课程群实践创新的困境与突围”的大纲。您可以根据这个大纲展开您的论文写作: 一、引言 移动机器人技术的发展和应用价值移动机器人课程群在应用型本科教育中的重要性论文目的和研究问题:解析移动机器人课程群实…

利用OpenCV做个熊猫表情包 二

之前写了一篇 利用OpenCV做个熊猫表情包吧_Leen的博客-CSDN博客 回想起来觉得有点太弱了,意犹未尽,每次使用需要自己去手动截取人脸,清除黑边什么的才能使用demo去合成表情,无奈之前由于安装的vs,opencv版本都比较低…

扩散模型实战(十):Stable Diffusion文本条件生成图像大模型

推荐阅读列表: 扩散模型实战(一):基本原理介绍 扩散模型实战(二):扩散模型的发展 扩散模型实战(三):扩散模型的应用 扩散模型实战(四&#xff…

【推荐】智元兔AI:一款集写作、问答、绘画于一体的全能工具!

在当今技术飞速发展的时代,越来越多的领域开始应用人工智能(Artificial Intelligence,简称AI)。其中,AI写作工具备受瞩目,备受推崇。在众多的选择中,智元兔AI是一款在笔者使用过程中非常有帮助的…

Halcon Solution Guide I basics(2): Image Acquisition(图像加载)

文章目录 文章专栏前言文章解读文章开头流程图算子介绍案例自主练习读取一张图片读取多张图片 文章专栏 Halcon开发 Halcon学习 练习项目gitee仓库 前言 今天来看Halcon的第二章,图像获取。在第二章之后,后面文章就会提供案例了。到时候我会尽量完成每一…

场景交互与场景漫游-交运算与对象选取(8-1)

交运算与对象选取 在面对大规模的场景管理时,场景图形的交运算和图形对象的拾取变成了一项基本工作。OSG作为一个场景管理系统,自然也实现了场景图形的交运算,交运算主要封装在osgUtil 工具中在OSG中,osgUtil是一个非常强有力的工…

@AutoConfigurationPackage的使用

作用 参考:https://blog.csdn.net/yasinawolaopo/article/details/121319977 不过文章最后这个结论是有点问题的,这个注解的作用只导入了一个bean,就是AutoConfigurationPackages.class.getName()。 了解introspectedClass(内省…

【Python】给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200

2、问题描述 给定一个长度为n的数列&#xff0c;将这个数列按从小到大的顺序排列。1<n<200 样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 n int(input()) a list(map(int,input().split())) a.sort() for i in a:print(i,end ) 运行结果&#xff1a;

深度学习基础

深度强化学习 教程链接 DataWhale强化学习课程JoyRL https://johnjim0816.com/joyrl-book/#/ch7/main 深度学习基础 强化学习的问题可以拆分成两类问题&#xff0c;即预测与控制。预测的主要目的是根据环境的状态以及动作来预测状态的价值与动作的价值&#xff0c;而控制的…

毕业设计JSP 2384网上diy蛋糕店管理系统【程序源码+讲解视频+调试运行】

一、摘要 本文将介绍一个功能全面、易于使用的网上DIY蛋糕店管理系统。该系统包括用户和管理员两种用户&#xff0c;每种用户都有相应的功能模块。系统实现了网站首页、用户注册/登录、蛋糕展示、综合排行、购物车、蛋糕DIY和用户中心等功能&#xff0c;同时管理员还可以进行管…