版权声明:欢迎去我的新家https://www.jianshu.com/u/906a78709f1d    https://blog.csdn.net/dongyanwen6036/article/details/78555163

一、实践

离散特征的编码分为两种情况:

1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码

2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XXL:3}说明:对于有大小意义的离散特征,直接使用映射就可以了,{'XL':3,'L':2,'M':1}

使用pandas可以很方便的对离散型特征进行one-hot编码

#-*-coding=utf-8-*-

import pandas as pd

df = pd.DataFrame([

['green', 'M', 10.1, 'class1'],

['red', 'L', 13.5, 'class2'],

['blue', 'XL', 15.3, 'class1']])

df.columns = ['color', 'size', 'prize', 'class label']

size_mapping = {

'XL': 3,

'L': 2,

'M': 1}

df['size'] = df['size'].map(size_mapping)

class_mapping = {label:idx for idx,label in enumerate(set(df['class label']))}

df['class label'] = df['class label'].map(class_mapping)

print('----------------------------------------------------------------')

print(df)

print('----------------------------------------------------------------')

df=pd.get_dummies(df)

print(df)

print('----------------------------------------------------------------')

使用get_dummies进行one-hot编码,独热码应用前后注意color列的变化结果如下

二、实践

最后难免要变稀疏矩阵

>>> import pandas as pd

>>> s = pd.Series(list('abca'))

>>> pd.get_dummies(s)

a  b  c

0  1  0  0

1  0  1  0

2  0  0  1

3  1  0  0

>>> s1 = ['a', 'b', np.nan]

>>> pd.get_dummies(s1)

a  b

0  1  0

1  0  1

2  0  0

>>> pd.get_dummies(s1, dummy_na=True)

a  b  NaN

0  1  0    0

1  0  1    0

2  0  0    1

下面这个有意思,直接C不参加,因为prefix写明了A和B参加one-hot编码。

>>> df = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'],

...                    'C': [1, 2, 3]})

>>> pd.get_dummies(df, prefix=['col1', 'col2'])

C  col1_a  col1_b  col2_a  col2_b  col2_c

0  1       1       0       0       1       0

1  2       0       1       1       0       0

2  3       1       0       0       0       1

参考官网

参考

---------------------

作者:Gunther17

来源:CSDN

原文:https://blog.csdn.net/dongyanwen6036/article/details/78555163

版权声明:本文为博主原创文章,转载请附上博文链接!

python get dummies_python中的get_dummies实战相关推荐

  1. Python在Seaborn中手动指定调色板颜色进行数据可视化颜色自定义实战(Manually Specify Palette Colors in Seaborn)

    Python在Seaborn中手动指定调色板颜色进行数据可视化颜色自定义实战(Manually Specify Palette Colors in Seaborn) 目录

  2. Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战

    Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战 目录 Python使用numpy中的hstack函数水平堆叠(horizontally stac ...

  3. 小猪的Python学习之旅 —— 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中

    小猪的Python学习之旅 -- 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中 标签:Python 一句话概括本文: 利用Excel存储爬到的抓取豆瓣音乐Top 250数据信息,还有 ...

  4. 编程实战(4)——python识别图像中的坐标点并保存坐标数据

    编程实战(4)--python识别图像中的坐标点并保存坐标数据 文章目录 编程实战(4)--python识别图像中的坐标点并保存坐标数据 综述 代码思路 库的安装 图片预处理 图像细化 图像二极化 提 ...

  5. 《OpenCv视觉之眼》Python图像处理十六:Opencv图像处理实战一之图像中的硬币检测

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  6. python多元线性回归模型案例_Python 实战多元线性回归模型,附带原理+代码

    原标题:Python 实战多元线性回归模型,附带原理+代码 作者 | 萝卜 来源 | 早起Python( ID:zaoqi-python ) 「多元线性回归模型」非常常见,是大多数人入门机器学习的第一 ...

  7. python拟合离散数据_Logit模型拟合实战案例(Python)——离散选择模型之六

    前言:本文详细介绍如何在Python中拟合Logit模型,包括数据准备.哑变量的处理.参数拟合结果解读等内容. 本文为系列离散选择模型(Discrete Choice Model, DCM)系列文章的 ...

  8. python运行错误-Python在运行中发生错误怎么正确处理方法,案例详解!

    在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...

  9. Python 网络爬虫笔记11 -- Scrapy 实战

    Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

最新文章

  1. 阿里巴巴发布AI养蜂系统
  2. c语言qt生成dll与加载dll,Qt制作界面的DLL以及调用
  3. oracle sparc 服务器系统,OracleSPARC服务器基础.PDF
  4. Flink的状态一致性
  5. 【redis】 windows 32x 64x
  6. C# 值类型 引用类型 作为参数传递区别
  7. 《Arduino开发实战指南:机器人卷》一3.6 编程原理与示例程序
  8. 何川L3管理课_模块4_成果管理
  9. vue生命周期心得体会800字
  10. c语言俄罗斯方块源代码 解说,C语言课程设计俄罗斯方块源代码解说.doc
  11. port ‘pi_data‘ not found in module ‘dcfifo‘
  12. spark写出分布式的训练算法_Spark on Angel
  13. Android App集成支付宝
  14. iOS模拟器运行报错Unable to install /xxx/build/ios/iphonesimulator/Runner.app
  15. LTE RB PRB
  16. 在配有通道的计算机系统中,用户程序需要输出时,引起的中断是,自考计算机系统结构试题_全国2009年7月自考试卷...
  17. 使用html+css实现一个静态页面(含源码)
  18. 支付那些事,支付设计遇到的那些坑(一)(聚合支付平台踩过的那些坑)
  19. 【新浪面试题】如何技高一筹解决查找单链表中的倒数第k个结点
  20. leetcode 546. 移除盒子 —— 动态规划

热门文章

  1. 聚焦数据管理流程重塑
  2. 将混淆矩阵中的数字字体变大--python
  3. 美图秀秀笔试题:妖怪与和尚过河问题答案
  4. scala 基本类型和操作
  5. 如何在ppt中剔除图片的背景精美ppt模板下载
  6. 在浏览器中运行Windows11网页版
  7. 写字楼招商难、收租慢、管理乱?用快鲸智慧楼宇系统快速解决
  8. 怎样用计算机表白我爱你,高级表白密码,教你如何用数字表达出我爱你
  9. Reactor实现http服务器,附完整代码
  10. java最全面的面试题