這個函數很有用,隔一段時間不用就老忘記,在這裏舉例總結一下。
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,可以試試。