任何事情都是由量变到质变的过程,学习Python也不例外。
只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。
本文和你一起来探索Python中的enumerate函数,让你以最短的时间明白这个函数的原理。
也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。
enumerate函数定义
enumerate函数实例
例1 enumerate函数将列表组合为索引序列
例2 enumerate函数将字符串组合为索引序列
例3 enumerate函数将元组组合为索引序列
enumerate函数在异常数据处理中的应用
3.1 导入库并加载数据
3.2 应用enumerate函数对空值进行填充

enumerate函数是Python中常用的内置函数,调用无需加载库,直接使用即可。
enumerate函数可将可遍历的对象(如列表、元组、字符串等)组合为一个索引序列,同时列出数据下标和对象数值。
其基本调用语法如下:
enumerate(iteration, start)iteration:可遍历的对象,如列表、元组、字符串等。
start:用来指定索引的起始数值,默认为0。 enumerate函数的返回值有两个,第一个是索引,第二个是iteration参数中的值。
二、enumerate函数实例 例1:enumerate函数将列表组合为索引序列
我们先来看下使用enumerate函数将列表组合为一个索引序列,代码如下:
list(enumerate(['榴莲', '西瓜', '蓝莓']))得到结果:
[(0, '榴莲'), (1, '西瓜'), (2, '蓝莓')]从结果知,当enumerate函数中的start值没有指定时,索引的顺序从0开始,依次往后打标签。
例2:enumerate函数将字符串组合为索引序列
接着来看下使用enumerate函数将字符串组合为一个索引序列,并指定索引的起始值为1,代码如下:
list(enumerate('凡事尽力了,就没有遗憾了', start=1))得到结果:
[(1, '凡'),(2, '事'),(3, '尽'),(4, '力'),(5, '了'),(6, ','),(7, '就'),(8, '没'),(9, '有'),(10, '遗'),(11, '憾'),(12, '了')]可以发现enumerate函数把字符串中的每个字符进行了拆分,并从指定的索引初始值进行编号。
例3:enumerate函数将元组组合为一个索引序列 接下来看下使用enumerate函数将元组组合为一个索引序列,代码如下:
list(enumerate(('榴莲', '西瓜', '蓝莓'), start=2))得到结果:
[(2, '榴莲'), (3, '西瓜'), (4, '蓝莓')]从结果知,当enumerate函数中的start值指定为2时,打标的顺序从2开始,依次往后顺延。
三、enumerate函数在异常数据处理中的应用 在搭建贷款预测模型时,首先要对异常数据进行处理。比如对婚姻状态值为空的项,根据当前贷款状态进行值填充。
1 导入库并加载数据
首先导入本文需要的库并加载数据,如果你有些库还没有安装,导致运行代码时报错,可以在Anaconda Prompt中用pip方法安装。
import osimport pandas as pd#设置数据存储的路径os.chdir(r'F:\公众号\65.贷款预测')#读取训练集date_train = pd.read_csv('train_u6lujuX_CVtuZ9i.csv', delimiter=',')date_train['Loan_Status'].value_counts()得到结果: Yes 398No 213Name: Married, dtype: int64训练集的数据共614行,当前已婚客户398个,未婚客户213个,总计婚姻状态有值的客户611户,说明数据中有3个客户的婚姻状态为空。 在异常值处理时,一种方案是删除这3条为空的客户数据,此时会损失客户信息。 另一种方案是对空值进行填充,接下来看下应用enumerate函数对空值进行填充。
2 应用enumerate函数对空值进行填充
应用for循环结合enumerate函数对空值进行填充,代码如下:
for index, value in enumerate(date_train['Married']):if pd.isna(value):if date_train['Loan_Status'][index] == 'N':date_train['Married'][index] = 'No'else:date_train['Married'][index] = 'Yes'date_train['Married'].value_counts()代码的逻辑是,对于结婚状态列值为空的项,当对应贷款状态是N时,填充空值为No,否则填充空值为Yes。
enumerate函数的作用是生成下标,通过下标去给空值赋值。
得到结果:
Yes 401No 213Name: Married, dtype: int64可以发现填充后Yes的值从398,变成了401,总计婚姻状态有值的客户614户,则每个客户婚姻状态都有值了。
至此,Python中的enumerate函数已讲解完毕,如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。


扫一扫关注我
13162366985
投稿微信号、手机号

