这次主要说一下函数的应用方式。
首先生成数据
df = pd.DataFrame(np.random.randint(0,151,size = (50,3)),columns=['Chinese','Math','English'])
df
结果为
apply
# 求均值
df.apply(np.mean)
结果为
可以看到默认是求的列均值。
transform
注意,此方式不适用于聚合函数,例如mean、min、max、std、var等
# 应用自定义函数
def func(x):
cond1 = x < 60
cond2 = x > 130
cond3 = cond1 | cond2
cond4 = np.logical_not(cond3)
x[cond1] = 'F'
x[cond2] = 'B'
x[cond4] = 'A'
return x
df.transform(func)
agg
适用于聚合运算
df2.agg(np.mean)
结果为
# 同时应用多个函数
df2.agg([np.mean, np.max])
结果为
# 按索引使用不同的聚合函数
df2.agg({'Chinese':np.mean, 'Math':np.max, 'English':np.min})
结果为
pipe
# 链式方法
def fun(x):
return x.min(), x.max(), x.max()-x.min()
df2.pipe(fun)
结果为