pandas处理数据中常用的一种处理数据的方式是使用apply函数
会使数据处理起来更快更简单
可以进行单列 或者多列
单列
现在想根据他的月总业绩,进行分等级,并且命名为等级,等级有[‘A’,‘B’,‘C’,‘D’,‘E’,‘F’]
from pandas import read_excel
data = read_excel('yeji.xlsx')
# 自定义函数
# 因为只会用到一列,所以函数参数只有一列
def cut_level(x):
if x < 1200:
return 'F'
elif x < 5000:
return 'E'
elif x < 20000:
return 'D'
elif x < 100000:
return 'C'
elif x < 250000:
return 'B'
else:
return 'A'
data['等级'] = data['月总业绩'].apply(cut_to)
print(data)
对于多列
现在等级出来了 我们需要返回一个比列,数据纯属捏造,只为了方便
# 对于多列
# 根据月总业绩,等级划分一列比例
# 因为是根据两列 所以函数传入参数2个。需要根据几列进行判断,函数就传入几个参数
def cut_to(x, y):
if x > 200000 and y == 'A':
return 0.8
elif x > 100000 and y == 'B':
return 0.6
elif x > 50000 and y == 'B':
return 0.5
else:
return 0.4
data['比例'] = data.apply(lambda row: cut_to(row['月总业绩'], row['等级'],axis=1)
data