【Python常用函数】一文让你彻底掌握Python中的enumerate函数

任何事情都是由量变到质变的过程,学习Python也不例外。

只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。

本文和你一起来探索Python中的enumerate函数,让你以最短的时间明白这个函数的原理。

也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。

本文目录
  1. enumerate函数定义

  2. enumerate函数实例

    例1 enumerate函数将列表组合为索引序列

    例2 enumerate函数字符串组合为索引序列

    例3 enumerate函数将元组组合为索引序列

  3. enumerate函数在异常数据处理中的应用

    3.1 导入库并加载数据

    3.2 应用enumerate函数对空值进行填充


一、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函数在异常数据处理中的应用

在搭建贷款预测模型时,首先要对异常数据进行处理。比如对婚姻状态值为空的项,根据当前贷款状态进行值填充。

  导入库并加载数据

首先导入本文需要的库并加载数据,如果你有些库还没有安装,导致运行代码时报错,可以在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”模块相关文章。

往期回顾:
520表白代码合集
一文囊括Python中的函数,持续更新。。。
一文囊括Python中的有趣案例,持续更新。。。
让你彻底弄懂Python编程经典案例【考题】之反转一个值
Python编程经典案例【考题】自由落体运动球的运动轨迹
六一儿童节来临,送大朋友小朋友一只最近爆火的“可达鸭”



扫一扫关注我

13162366985

投稿微信号、手机号

请使用浏览器的分享功能分享到微信等