python中get_dummies实践
来源:互联网 发布:黑色梦中 知乎 编辑:程序博客网 时间:2024/06/11 12:12
一、实践
离散特征的编码分为两种情况:
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 c0 1 0 01 0 1 02 0 0 13 1 0 0>>> s1 = ['a', 'b', np.nan]>>> pd.get_dummies(s1) a b0 1 01 0 12 0 0>>> pd.get_dummies(s1, dummy_na=True) a b NaN0 1 0 01 0 1 02 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_c0 1 1 0 0 1 01 2 0 1 1 0 02 3 1 0 0 0 1
参考官网
参考
阅读全文
1 0
- python中get_dummies实践
- 【python】pd.get_dummies进行one-hot编码
- Python中 etree.xpath实践
- pandas中利用get_dummies()进行独热编码(One-Hot encoding)
- 关于pandas.get_dummies
- pandas get_dummies()使用
- pandas get_dummies的使用方法
- pandas之get_dummies
- Python中使用Mysql(编码实践)
- Python之Pandas中Series、DataFrame实践
- Python制作Mac软件(实践中)
- Pandas 文本数据方法 get_dummies()
- python中list 和 dict 效率的一次实践
- Python中使用支持向量机(SVM)实践
- pandas使用get_dummies进行one-hot编码
- pandas使用get_dummies进行one-hot编码
- pandas使用get_dummies进行one-hot编码
- 实践中Python 2.x 与 python 3.x 的改动
- Dijkstra——单源最短路径
- linux端口连通性测试【telnet、wget、ssh、curl】
- Jmeter的一些不解的奇怪设定
- deeplearning.ai-卷积神经网络
- canvas画太极
- python中get_dummies实践
- 内网Windos服务器VM虚拟机上(ContOs6.8)上安装mysql遇到的问题
- 6.14
- 欢迎使用CSDN-markdown编辑器
- RecyclerView 源码分析(一)
- POJ1061---青蛙的约会(同余方程,拓展gcd)
- 冒泡排序
- Android自定义View时获取文字宽高
- SSH(二)——实现DAO层和部署DAO层