在对海量数据进行分析的过程中,我们可能要把文本型的数据处理成数值型的数据,方便放到模型中进行使用。
也可能需要把数值型的数据分段进行处理,比如变量的woe化。而这些操作都可以借助python中的apply函数进行处理。
今天介绍数据分析的第四课,教大家如何在python中用apply函数对数据框进行一些复杂一点的操作。
本文目录
注意:本文沿用数据分析第一课【Python数据分析—数据建立】里的数据框date_frame:
1 把字符型的数据处理成数值型
假设要在原数据框中把性别这一列,”男“字符替换成1、“女”字符替换成0,并生成一个新列。
首先,可以自定义一个替换函数。具体语句如下:
def replace_gender_to_num(val):
if val=='男':
return 1
else:
return 0
然后用apply函数调用该函数,具体语句如下:
date_frame.gender.apply(replace_gender_to_num)
得到结果如下:
至此,原gender列中“男”字符替换成1,“女”字符替换成0。
把该列加入到原数据框中去,具体语句如下:
date_frame['new_gender'] = date_frame.gender.apply(replace_gender_to_num)
得到结果如下:
可以发现性别为男,在new_gender中对应值为1,性别为女在new_gender中对应值为0。
2 把数值型的数据分段处理
在建模过程中,要把不同分段的值转化成对应的woe,需要用到apply函数进行处理。
类似的,在这个实例中假设要把身高高于1.8的同学当成第一类,身高高于1.65的当成第二类,其余的同学当成第三类。
可以定义一个如下转换函数:
def height_to_class(val):
if val>=1.8:
return 1
elif val>=1.65:
return 2
else:
return 3
然后用apply函数调用该函数,并把得到的结果值保存到原数据框中去,具体语句如下:
date_frame['heigth_class'] = date_frame.height.apply(height_to_class)
得到结果如下:
至此,在python中应用apply函数进行数据处理已介绍完毕,大家可以动手练习一下,思考一下apply函数还有没有别的用途