![3901436-b557f5c503ded717](https://i-blog.csdnimg.cn/blog_migrate/32b9ce524234b93ba809cc1b2899a22e.webp?x-image-process=image/format,png)
欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。
作者:胡言 Python爱好者社区专栏作者
知乎ID:https://www.zhihu.com/people/hu-yan-81-25
前文传送门:
Python--NBA数据分析初探(上)
上回学习到利用jupyter notebook简单展示了一下单变量、双变量几多变量的数据可视化,本篇将在上篇的基础上,练习一下python数据处理及衍生变量的一些可视化实践。
在已有的数据集里想要生成新的变量,例如:把球员按年龄分为老中青三代,可以借助定义一个函数,再利用apply的方式,生成新的变量。
#根据已有变量生成新的变量data['avg_point']=data['POINTS']/data['MP'] #每分钟得分def age_cut(df): if df.AGE<=24: return 'young' elif df.AGE>=30: return 'old' else: return 'best'data['age_cut']=data.apply(lambda x: age_cut(x),axis=1) #球员是否处于黄金年龄data['cnt']=1 #计数用
同样的目的,也可以使用numpy模块中的函数np.where,与excel中的if函数和R语言中的ifelse函数几乎是一样的,非常简便。
既然得到了老中青三代的标签,我们来看一下不同年龄段球员的RPM(正负值)与薪水之前的关系如何:
### 球员薪水与效率值 按年龄段来看sns.set_style('darkgrid') #设置seaborn的面板风格plt.figure(figsize=(8,8))plt.title(u'$RPM\ and\ SALARY$',size=15)X1=data.loc[data.age_cut=='old'].SALARY_MILLIONSY1=data.loc[data.age_cut=='old'].RPMX2=data.loc[data.age_cut=='best'].SALARY_MILLIONSY2=data.loc[data.age_cut=='best'].RPMX3=data.loc[data.age_cut=='you