这个函数很有用,隔一段时间不用就老忘记,在这里举例总结一下。
apply函数可以对DataFrame对象进行操作,既可以作用于一行或一列的元素。
使用例子
1、常常作用于列元素
问题一:sales是一个Dataframe表格,它有一列叫distance(每一个值为"1.5km"、“5.0km"这种长相)。请把每一个值变成"1.5”、"5.0"这种长相。
def fun(x):
return str(x).split('k')[0]
sales['distance']= sales['distance'].apply(fun)
问题二:sales有一个列叫date(string类型)。把date的类型从string转换成datetime。
这个我们就可以用apply函数。
from datetime import datetime
def f(x):
dt= datetime.strptime(x,'%Y.%m.%d')#字符串'2018.10.01' must match format '%Y.%m.%d' 写成'%Y/%m/%d'将是不匹配的,出错
return dt
sales.date= sales.date.apply(f)
其中datetime的strptime():实现将字符串转换成指定格式的datetime。
可以看到,我们可以用apply函数给date列的每一个值进行操作。对每一个值的操作是转换类型trans实现的,我们只需把trans函数名作为参数传入apply()即可。
2、apply也可以应用于行元素
给apply()加上参数axis=1,可以试试。