我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Pandas进行数据编码的方式有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Pandas进行数据编码的方式有哪些

这篇文章主要介绍“Pandas进行数据编码的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Pandas进行数据编码的方式有哪些”文章能帮助大家解决问题。

最近在知乎上看到这样一个问题

Pandas进行数据编码的方式有哪些

为了方便理解,下面创建示例DataFrame

Pandas进行数据编码的方式有哪些

数值型数据

让我们先来讨论连续型数据的转换,也就是根据Score列的值,来新增一列标签,即如果分数大于90,则标记为A,分数在80-90标记为B,以此类推。

自定义函数 + 循环遍历

首先当然是最简单,最笨的方法,自己写一个函数,并用循环遍历,那肯定就是一个def加一个for

df1 = df.copy()def myfun(x):    if x>90:        return 'A'    elif x>=80 and x<90:        return 'B'    elif x>=70 and x<80:        return 'C'    elif x>=60 and x<70:        return 'D'    else:        return 'E'    df1['Score_Label'] = Nonefor i in range(len(df1)):    df1.iloc[i,3] = myfun(df1.iloc[i,2])

这段代码,相信所有人都能看懂,简单好想但比较麻

Pandas进行数据编码的方式有哪些

有没有更简单的办法呢?pandas当然提供了很多高效的操作的函数,继续往下看。

自定义函数 + map

现在,可以使用map来干掉循环(虽然本质上也是循环)

df2 = df.copy()def mapfun(x):    if x>90:        return 'A'    elif x>=80 and x<90:        return 'B'    elif x>=70 and x<80:        return 'C'    elif x>=60 and x<70:        return 'D'    else:        return 'E'df2['Score_Label'] = df2['Score'].map(mapfun)

结果是同样的

Pandas进行数据编码的方式有哪些

自定义函数 + apply

如果还想简洁代码,可以使用自定义函数 + apply来干掉自定义函数

df3 = df.copy()df3['Score_Label'] = df3['Score'].apply(lambda x: 'A' if x > 90 else (    'B' if 90 > x >= 80 else ('C' if 80 > x >= 70 else ('D' if 70 > x >= 60 else 'E'))))

结果和上面是一致的,只不过这么写容易被打。

使用 pd.cut

现在,让我们继续了解更高级的pandas函数,依旧是对 Score 进行编码,使用pd.cut,并指定划分的区间后,可以直接帮你分好组

df4 = df.copy()bins = [0, 59, 70, 80, 100]df4['Score_Label'] = pd.cut(df4['Score'], bins)

Pandas进行数据编码的方式有哪些

也可以直接使用labels参数来修改对应组的名称,是不是方便多了

df4['Score_Label_new'] = pd.cut(df4['Score'], bins, labels=[                                'low', 'middle', 'good', 'perfect'])

Pandas进行数据编码的方式有哪些

使用 sklearn 二值化

既然是和机器学习相关,sklearn肯定跑不掉,如果需要新增一列并判定成绩是否及格,就可以使用Binarizer函数,代码也是简洁好懂

df5 = df.copy()binerize = Binarizer(threshold = 60)trans = binerize.fit_transform(np.array(df1['Score']).reshape(-1,1))df5['Score_Label'] = trans

Pandas进行数据编码的方式有哪些

文本型数据

下面介绍更常见的,对文本数据进行转换打标签。例如新增一列,将性别男、女分别标记为0、1

使用 replace

首先介绍replace,但要注意的是,上面说过的自定义函数相关方法依旧是可行的

df6 = df.copy()df6['Sex_Label'] = df6['Sex'].replace(['Male','Female'],[0,1])

Pandas进行数据编码的方式有哪些

上面是对性别操作,因为只有男女,所以可以手动指定0、1,但要是类别很多,也可以使用pd.value_counts()来自动指定标签,例如对Course Name列分组

df6 = df.copy()value = df6['Course Name'].value_counts()value_map = dict((v, i) for i,v in enumerate(value.index))df6['Course Name_Label'] = df6.replace({'Course Name':value_map})['Course Name']

Pandas进行数据编码的方式有哪些

使用map

额外强调的是,新增一列,一定要能够想到map

df7 = df.copy()Map = {elem:index for index,elem in enumerate(set(df["Course Name"]))}df7['Course Name_Label'] = df7['Course Name'].map(Map)

Pandas进行数据编码的方式有哪些

使用astype

这个方法应该很多人不知道,这就属于上面提到的知乎问题,能实现的方法太多了

df8 = df.copy()value = df8['Course Name'].astype('category')df8['Course Name_Label'] = value.cat.codes

Pandas进行数据编码的方式有哪些

使用 sklearn

同数值型一样,这种机器学习中的经典操作,sklearn一定有办法,使用LabelEncoder可以对分类数据进行编码

from sklearn.preprocessing import LabelEncoderdf9 = df.copy()le = LabelEncoder()le.fit(df9['Sex'])df9['Sex_Label'] = le.transform(df9['Sex'])le.fit(df9['Course Name'])df9['Course Name_Label'] = le.transform(df9['Course Name'])

Pandas进行数据编码的方式有哪些

一次性转换两列也是可以的

df9 = df.copy()le = OrdinalEncoder()le.fit(df9[['Sex','Course Name']])df9[['Sex_Label','Course Name_Label']] = le.transform(df9[['Sex','Course Name']])

使用factorize

最后,再介绍一个小众但好用的pandas方法,我们需要注意到,在上面的方法中,自动生成的Course Name_Label列,虽然一个数据对应一个语言,因为避免写自定义函数或者字典,这样可以自动生成,所以大多是无序的。

如果我们希望它是有序的,也就是 Python 对应 0Java对应1,除了自己指定,还有什么优雅的办法?这时可以使用factorize,它会根据出现顺序进行编码

df10 = df.copy()df10['Course Name_Label'] = pd.factorize(df10['Course Name'])[0]

Pandas进行数据编码的方式有哪些

结合匿名函数,我们可以做到对多列进行有序编码转换

df10 = df.copy()cat_columns = df10.select_dtypes(['object']).columnsdf10[['Sex_Label', 'Course Name_Label']] = df10[cat_columns].apply(    lambda x: pd.factorize(x)[0])

Pandas进行数据编码的方式有哪些

关于“Pandas进行数据编码的方式有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Pandas进行数据编码的方式有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Pandas进行数据编码的方式有哪些

这篇文章主要介绍“Pandas进行数据编码的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Pandas进行数据编码的方式有哪些”文章能帮助大家解决问题。最近在知乎上看到这样一个问题为了方便
2023-06-30

js对url进行编码解码的方式有哪些

使用encodeURIComponent()和decodeURIComponent()函数:// 编码var encodedUrl = encodeURIComponent("https://www.example.com?name=张三
js对url进行编码解码的方式有哪些
2024-03-08

Pandas对数值进行分箱操作的方法有哪些

这篇文章主要讲解了“Pandas对数值进行分箱操作的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pandas对数值进行分箱操作的方法有哪些”吧!前言使用 Pandas 的betw
2023-06-30

docker进行数据挂载的模式有哪些

今天小编给大家分享一下docker进行数据挂载的模式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Docker 提供了
2023-06-30

pandas数据分析有哪些方法

pandas数据分析的方法有:1、数据读取与处理;2、数据筛选与选择;3、数据排序与整理;4、数据聚合与分组;5、数据透视与透视表;6、合并与连接数据;7、数据持久化与保存。Pandas库提供了丰富的数据分析和处理功能,涵盖了数据的读取、处
pandas数据分析有哪些方法
2023-11-22

用Python进行编码的技巧有哪些

本篇内容主要讲解“用Python进行编码的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用Python进行编码的技巧有哪些”吧!1. 可读性的重要性程序必须为了人们能够读懂而编写,其次
2023-06-16

pandas实现数据清洗有哪些方法

pandas实现数据清洗的方法有:1、缺失值处理;2、重复值处理;3、数据类型转换;4、异常值处理;5、数据规范化;6、数据筛选;7、数据聚合和分组;8、数据透视表等。详细介绍:1、缺失值处理,Pandas提供了多种处理缺失值的方法,对于缺
pandas实现数据清洗有哪些方法
2023-11-22

Python中Pandas数据合并方法有哪些

这篇文章主要介绍“Python中Pandas数据合并方法有哪些”,在日常操作中,相信很多人在Python中Pandas数据合并方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中Pandas
2023-06-21

JAVA实现Base64编码的方式有哪些

本篇内容主要讲解“JAVA实现Base64编码的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA实现Base64编码的方式有哪些”吧!定义: 二进制文件可视化Base64 是一种
2023-07-02

java中的编码转化方式有哪些

这篇文章主要介绍“java中的编码转化方式有哪些”,在日常操作中,相信很多人在java中的编码转化方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中的编码转化方式有哪些”的疑惑有所帮助!接下来
2023-06-19

go实现base64编码的方式有哪些

本篇内容主要讲解“go实现base64编码的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go实现base64编码的方式有哪些”吧!go的encoding/base64有四种编码方式:
2023-07-05

python Pandas时序数据处理的方法有哪些

这篇文章主要介绍“python Pandas时序数据处理的方法有哪些”,在日常操作中,相信很多人在python Pandas时序数据处理的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python
2023-07-02

java后端进行跨域的方式有哪些

这篇文章主要讲解了“java后端进行跨域的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java后端进行跨域的方式有哪些”吧!一、使用@CrossOrigin注解在controll
2023-07-05

数据传输方式有哪些

这篇文章主要介绍数据传输方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据传输方式是数据在信道上传送所采取的方式。按照数据传输的顺序可以分为“并行传输”和“串行传输”两种方式;按照数据传输的同步方式可分为“
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录