特征提取之pd.get_dummies()用法

pd.get_dummies的使用和疑惑解答 pd.get_dummies的使用 参考pandas官网 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:str, list of str, or dict of str, default None.St 阅读详情
背景:

在拿到的数据里,经常有分类型变量的存在,如下:
球鞋品牌:Nike、adidas、 Vans、PUMA、CONVERSE
性别:男、女
颜色:红、黄、蓝、绿
However,sklearn大佬不能直接分析这类变量呀。在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是算法关键部分,而常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。于是,我们要对这些分类变量进行哑变量处理,又或者叫虚拟变量。
缺点:
当类别的数量很多时,特征空间会变得非常大。在这种情况下,一般可以用PCA来减少维度。而且one hot encoding+PCA这种组合在实际中也非常有用。有些基于树的算法在处理变量时,并不是基于向量空间度量,数值只是个类别符号,即没有偏序关系,所以不用进行独热编码。Tree Model不太需要one-hot编码: 对于决策树来说,one-hot的本质是增加树的深度。
In summary,要是one hot encoding的类别数目不太多,可优先考虑。

一.pd.get_dummies()简单&粗暴
pandas.get_dummies(data, prefix=None, prefix_sep='_', 
			dummy_na=False, columns=None, 
			sparse=False, drop_first=False, dtype=None)

官网文档:
http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.get_dummies.html

输入:array-like, Series, or DataFrame
输出:DataFrame

主要参数说明:

data : array-like, Series, or DataFrame
prefix : 给输出的列添加前缀,如prefix="A",输出的列会显示类似
prefix_sep : 设置前缀跟分类的分隔符sepration,默认是下划线"_"

一般,我们输入data就够了。如果要专门关注Nan这类东东,可设置dummy_na=True,专门生成一列数据。
见下面的栗子:(简直不要太容易)

import numpy as np
import pandas as pd
data = pd.DataFrame({"学号":[1001,1002,1003,1004],
                    "性别":["男","女","女","男"],
                    "学历":["本科","硕士","专科","本科"]})
data

学历 学号 性别
0 本科 1001 男
1 硕士 1002 女
2 专科 1003 女
3 本科 1004 男

pd.get_dummies(data)

学号 学历_专科 学历_本科 学历_硕士 性别_女 性别_男
0 1001 0 1 0 0 1
1 1002 0 0 1 1 0
2 1003 1 0 0 1 0
3 1004 0 1 0 0 1

pd.get_dummies(data,prefix="A")

学号 A_专科 A_本科 A_硕士 A_女 A_男
0 1001 0 1 0 0 1
1 1002 0 0 1 1 0
2 1003 1 0 0 1 0
3 1004 0 1 0 0 1

pd.get_dummies(data,prefix=["A","B"],prefix_sep="+")

学号 A+专科 A+本科 A+硕士 B+女 B+男
0 1001 0 1 0 0 1
1 1002 0 0 1 1 0
2 1003 1 0 0 1 0
3 1004 0 1 0 0 1

二.

将指定列进行get_dummies 后合并到元数据中

data = data.join(pd.get_dummies(data.性别))
Pandas中的get_dummies()函数实战应用详解 独热编码,也被称为一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位来表示,并且在任意时候只有一位有效。在数据分析中,这通常意味着为每个类别创建一个新的二进制列,如果原始数据中的某个实例属于该类别,则在新列中标记为1,否则为0。Pandas的get_dummies()函数是处理类别型变量的强大工具,它可以将类别型变量转换为独热编码形式,方便后续的数据分析和机器学习算法应用。在使用该函数时,需要注意处理缺失值、添加前缀、处理重复值、指定要转换的列以及处理稀疏矩阵等问题。 阅读详情

相关推荐

【特征提取】pd.get_dummies() 详解(One-Hot Encoding)

pd.get_dummies 详解Pandas.get_dummies 用法简单介绍主要参数介绍dataprefixprefix_sep其他参数(Parameters)Pandas.get_dummies 的用法可以对指定列进行get_dummies将指定列进行get_dummies 后合并到元数据中 Pandas.get_dummies 用法简单介绍 Pandas 中的 get_dummies 方法主要用于对类别型特征做 One-Hot 编码(独热编码)。 pandas.get_dummies(data,

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 1万+

pandas.get_dummies 的用法

get_dummies 是利用pandas实现one hot encode的方式。详细参数请查看官方文档 官方文档在这里 pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)[source] 例子: i...

数据分析 22万+

自学ROS完成智能小车路径规划(一)--配置功能包

此系列文章记录本人学习ros的过程,将会尽可能详细以便自己能够看懂 参考系列:古月居老师,优快云,ROS tutorials,科大讯飞智能车竞赛线上赛 本文章的目标: 比较全局路径规划算法中A*算法与Dijkstra算法在该地图场景下的规划与运行时间 比较局部路径规划算法中DWA算法与TEB算法在该地图场景下的规划与运行时间 在同等参数条件下选择出各自适合的算法进行融合,经过比较,我将选择dijkstra算法作为全局路径规划算法,TEB算法为局部路径规划算法 第一步,按照科大讯飞的教程配置文件 科大讯

weixin_42621524的博客 9365

pd.get_dummies()

是 Pandas 库中用于独热编码(One-Hot Encoding)的函数。它的作用是将分类(离散)变量的每个不同取值都拓展为一个新的二进制特征(0或1),从而方便机器学习模型处理。列被独热编码为三个新的二进制列。在原始数据的每一行中,只有原始颜色对应的列为1,其余列为0。: 要进行独热编码的列的名称,如果指定,则只对这些列进行操作。: 生成的独热编码列的前缀和原始列名之间的分隔符。: 是否删除第一个独热编码列,以避免共线性问题。: 是否为原始数据中的缺失值生成独热编码列。: 生成的独热编码列的前缀。

Recursions的博客 3844

proteus仿真51单片机操作指南:串口通信仿真配置详解

深入讲解如何在proteus仿真51单片机中实现串口通信,涵盖虚拟串口设置、电路连接与调试技巧,帮助开发者高效完成通信仿真验证。

weixin_36197669的博客 569

手把手教你用CMake和MinGW64编译libuvc:静态链接与动态链接的选择

本文详细指导如何在Windows平台上使用CMake和MinGW64编译libuvc库,并深入探讨静态链接与动态链接的选择策略。通过对比两种链接方式在部署复杂度、内存占用和版本管理等方面的差异,帮助开发者根据项目需求做出最优决策,实现高效的USB摄像头开发。

weixin_29171087的博客 253

pd.get_dummies()用法

在数据的预处理过程中,我们需要将一个特征变量变为计算机能读懂的特征距离。 pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None) 详细参数: prefix:str, list of str, 或 dict of str, 默认为 None 用于追加DataFrame列名称的字符串。 prefix_s

lindaicoding的博客 3万+

C语言——预处理指令

return 0;这里是可以编译通过的,运行结果也是对的:;;return 0;这里编译器会报错:这里是有语法错误的。在C语言中,#include是一个预处理指令,用于将一个源文件的内容插入到另一个源文件中。这通常用于包含标准库或自定义库的头文件,以便在程序中使用这些库中定义的函数、类型和宏。#include或:用于包含标准库头文件。查找策略是,编译器会在标准库头文件目录中查找这些文件。:用于包含用户自定义的头文件。

Stewie Lee的博客 3188

实操笔记01-特征提取之pd.get_dummies()

get_dummies 是利用pandas实现one hot encode的方式。详细参数请查看官方文档 使用: pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None, sparse=False, drop_first=False)[source] 参数说明: data : arr...

xiuxiuxiu666的博客 6054

Redis Lua引擎UAF漏洞CVE-2025-49844深度剖析与复现实践

内存安全是软件系统稳定性的基石,其核心原理在于确保程序对内存的访问始终处于合法、受控的状态。在C/C++等手动管理内存的语言中,Use-After-Free(释放后使用)是一种典型的高危内存安全漏洞,它源于已释放的内存区域仍被程序指针引用,导致数据混乱或程序崩溃。这类漏洞的技术价值在于其往往能突破高级语言的安全边界,直接威胁进程本身,危害等级极高,常见于数据库、浏览器等核心基础设施。在Redis这样的高性能内存数据库中,其内置的Lua脚本引擎为复杂操作提供了强大支持,但同时也引入了沙箱环境下的复杂内存对象生

weixin_42530732的博客 365

IPSec Over GRE和GRE Over IPSec技术

IPSec Over GRE 和 GRE Over IPSec 一. 技术介绍 IPsec     主要作用是对数据进行加密,因为他能提供所有有时候被单独用作实现加密的一种方法!IPsec建立的是一个逻辑隧道,并不是真正意义上的隧道!并且不能提供路由功能,因为IPsec不支持非ip流量,也不支持广播(组播)! GRE     (通用路由封装)能很好的提供一个真正意义上的点对点的隧道,GRE是一种三层VPN封装技术。GRE可以对某些网络层协议(如IPX、Apple Talk、IP等)的报文进行封装,使封装后

qq_56228347的博客 9864

特征提取之pd.get_dummies()

one-hot encoding 转自“https://www.jianshu.com/p/5f8782bf15b1” one-hot的基本思想:将离散型特征的每一种取值都看成一种状态,若你的这一特征中有N个不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状...

weixin_42599429的博客 540

scGPT学习资料汇总 - 单细胞多组学基础模型

scGPT(single-cell Generative Pre-trained Transformer)是一个针对单细胞多组学数据的基础模型,由多伦多大学Wang Bo实验室开发。该模型通过在超过3300万个细胞上进行生成式预训练,捕捉了基因和细胞之间的复杂关系,为多种下游任务提供了强大的基础。scGPT为单细胞分析提供了强大的基础模型和丰富的资源。通过本文汇总的学习材料,读者可以快速掌握scGPT的使用,并将其应用到自己的研究中。

2401_87189860的博客 838

pandas.get_dummies函数用法详细解答(实践)

pandas.get_dummies函数用法详细解答(实践) pandas.get_dummies函数用法详细解答(实践)_skywf的博客-优快云博客

studyvcmfc的专栏 1268

告别屏幕闪烁:手把手教你用示波器抓取并分析MIPI DSI信号(以RK平台为例)

本文详细介绍了如何利用示波器抓取并分析MIPI DSI信号,以解决LCD屏幕闪烁、花屏等问题。以RK平台为例,从工具准备、示波器参数配置到信号捕获与波形解读,提供了一套完整的调试方案,帮助硬件工程师快速定位和解决显示接口信号完整性问题。

weixin_33704591的博客 653

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python get dummies_特征提取之pd.get_dummies()

one-hot encodingone-hot的基本思想:将离散型特征的每一种取值都看成一种状态,若你的这一特征中有N个不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。举个例子,假设我们以学历为例,我们想要研究的类别为小学、中学、大学、硕士、博士五种类别,我们使用...

weixin_39886469的博客 446

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Pandas用法整理

Pandas用法整理一.理解fig,ax = plt.subplots() 一.理解fig,ax = plt.subplots() 见链接https://www.cnblogs.com/komean/p/10670619.html

LIWEI940638093的博客 372

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Sklearn常用特征提取和处理方法

1、将分类变量转换为数值编号,才可以被处理 import pandas as pd import numpy as np from sklearn import preprocessing 用LabelEncoder对不同的犯罪类型编号 leCrime = preprocessing.LabelEncoder() crime = leCrime.fit_transform(train....

sxjcfrd的博客 4997

成功解决raise ValueError(“No objects to concatenate“)ValueError: No objects to concatenate

​ 成功解决raise ValueError("No objects to concatenate")ValueError: No objects to concatenate 目录 解决问题 解决思路 解决方法 解决问题 raise ValueError("No objects to concatenate") ValueError: No objects to concatenate 解决思路 根据报错信息,问题的根本原因是 pd.get_dummies(df_X[non_n

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 3185

python数据分析函数备忘录

np.argwhere和DataFrame的unique() 示例数据: adults=pd.read_csv('data/adults.txt') adults.head() age workclass final_weight education education_num marital_status occupation relationship race sex capital_gain capital_loss .

lm19770429的专栏 434

sklearn简单应用

PCA url from sklearn.decomposition import PCA newX = pca.fit_transform(X) #等价于pca.fit(X) pca.transform(X) invX = pca.inverse_transform(X) #将降维后的数据转换成原始数据 print(pca.explained_variance_ratio_) # 返回所保留的n个成分各自的方差百分比 ...

weixin_39633943的博客 194

Day 5 离散特征的处理——独热编码

找到离散特征后,可使用value_counts()方法对某列的离散变量分布情况有一定了解,具体来说该方法会,返回该列中每个唯一值及其对应的出现次数,按频数降序(默认)排列。的离散特征且类别数量较少时,一般采用独热编码进行处理,它会将分类变量转换为二进制向量。在信贷数据集中识别离散特征,采用的方法与day 4中处理缺失值类似——遍历列名,判断列的数据类型。形式,因此采用for循环将离散特征提取至list中,然后直接独热编码、类型转换即可。注:找新特征名时,可选择嵌套语句实现,也可使用。

Gitpchy的博客 1105

动手学深度学习 PyTorch版_个人笔记

day01 b站:https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497 教材:https://zh-v2.d2l.ai/chapter_preface/index.html#sec-code 03 安装 我没有按照他的来 我使用的是anaconda 1)anaconda prompt 2) cd 到下载好的jupyter记事本位置 3)jupyter notebook 即可 04 数据操作+数据预处理 (沐神没告诉我在ju

nmslnmsl_n的博客 5794

动手学深度学习-预备知识

data :输入的数据(dataframe,series,array-like)(1)pd.get_dummies 基于one-hot编码的特征提取。将离散型特征每一种取值看作一种状态,将不同值的变量转换为0/1。columns :指定所需要实现类别转换的列名。(3)A.numel()求矩阵元素的个数。(1)Hadamard积。

Yogurtboyyy的博客 150

kaggle 泰坦尼克号生存预测 二、特征工程

目录 二. 特征工程 特征提取 1.Pclass 2.Sex 3.添加新特征 SibSp_Parch 4.Embarked  5.Name 6.Fare 7.Ticket 8.Age 9.Cabin 划分数据集 二. 特征工程 特征提取 test原本无Survived列,将其补齐 test加到train尾部 训练集与测试集一起进行特征工程,标准化时需分开处理 ...

baidu_39630688的博客 842
上一篇: torch.max(input, dim, keepdim=False, out=None)使用
下一篇: python之ipdb模块
那记忆微凉
博客等级 码龄9年 412粉丝 387原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值