pandas学习-----apply函数的应用
import pandas as pd
df =pd.DataFrame(data={'学号':['x1','x2','x3','x4','x5'],
'班级':['1班','1班','1班','2班','2班'],
'姓名':['张三','李四','王五','韩六','赵七'],
'性别':['男','男','男','女','女'],
'身高':[177,151,167,175,153],
'语文成绩':[92,84,80,77,87],
'学分':[1.5,2.3,3.2,1.2,1.8],
'日期':['2019/3/23','2019/3/24','2019/3/25','2019/3/26','2019/3/27']})
#对姓名这一列的每个元素都添加字幕'xm'
def myfunc(x):
return 'xm'+x
df['姓名']=df['姓名'].apply(myfunc)
print(df)
#成绩这一列中,如果有小于90分的,这改成90分
def myfunc(x):
if x<90:
return 90
else:
return x
df['语文成绩'] = df['语文成绩'].apply(myfunc)
print(df)
#分组应用apply
#注意myfunc接收的参数类型
def myfunc(series):
return series.max()
#计算每个班级语文成绩的最高分
df.groupby(by=['班级'],as_index=False)['语文成绩'].apply(myfunc)
print(df)
输出的结果为
学号 班级 姓名 性别 身高 语文成绩 学分 日期
0 x1 1班 xm张三 男 177 92 1.5 2019/3/23
1 x2 1班 xm李四 男 151 84 2.3 2019/3/24
2 x3 1班 xm王五 男 167 80 3.2 2019/3/25
3 x4 2班 xm韩六 女 175 77 1.2 2019/3/26
4 x5 2班 xm赵七 女 153 87 1.8 2019/3/27
学号 班级 姓名 性别 身高 语文成绩 学分 日期
0 x1 1班 xm张三 男 177 92 1.5 2019/3/23
1 x2 1班 xm李四 男 151 90 2.3 2019/3/24
2 x3 1班 xm王五 男 167 90 3.2 2019/3/25
3 x4 2班 xm韩六 女 175 90 1.2 2019/3/26
4 x5 2班 xm赵七 女 153 90 1.8 2019/3/27
学号 班级 姓名 性别 身高 语文成绩 学分 日期
0 x1 1班 xm张三 男 177 92 1.5 2019/3/23
1 x2 1班 xm李四 男 151 90 2.3 2019/3/24
2 x3 1班 xm王五 男 167 90 3.2 2019/3/25
3 x4 2班 xm韩六 女 175 90 1.2 2019/3/26
4 x5 2班 xm赵七 女 153 90 1.8 2019/3/27