任何事情都是由量变到质变的过程,学习Python也不例外。只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。本文和你一起来探索Python中的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函数在异常数据处理中的应用
在搭建贷款预测模型时,首先要对异常数据进行处理。比如对婚姻状态值为空的项,根据当前贷款状态进行值填充。
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浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)