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

任何事情都是由量变到质变的过程,学习Python也不例外。只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。本文和你一起来探索Python中的enumerate函数,让你以最短的时间明白这个函数的原理。也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。
  


  

一、enumerate函数定义

  
enumerate函数是Python中常用的内置函数,调用无需加载库,直接使用即可。enumerate函数可将可遍历的对象(如列表、元组、字符串等)组合为一个索引序列,同时列出数据下标和对象数值。

其基本调用语法如下:

enumerate(iteration, start)
iteration:可遍历的对象,如列表、元组、字符串等。
start:用来指定索引的起始数值,默认为0enumerate函数的返回值有两个,第一个是索引,第二个是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 os
import 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    398
No     213
Name: 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    401
No     213
Name: Married, dtype: int64

可以发现填充后Yes的值从398,变成了401,总计婚姻状态有值的客户614户,则每个客户婚姻状态都有值了。
  
至此,Python中的enumerate函数已讲解完毕,如想了解更多Python中的函数,可以翻看”阿黎逸阳的代码“公众号中“学习Python”模块相关文章。
  
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
用Python绘制520永恒心动
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
【Python】情人节表白烟花(带声音和文字)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

猜你喜欢

转载自blog.csdn.net/qq_32532663/article/details/127949624