"""
@author: cht
@time: 2019/9/7 12:33
"""
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#解决matplotlib画图中文显示乱码的情况
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
def show_position_pie(self):
player = pd.read_csv('./player.csv')
# print(playersdata.head())
# 输出data的数据量和维度。
print(player.shape)
print(player['country'].value_counts())
print(player['position'].value_counts())
houwei = 0
qianfei = 0
zhongfen = 0
huoqian = 0
qianzhong = 0
qianhuo = 0
zhongqian = 0
for posi in player['position']:
if posi == "后卫":
houwei += 1
elif posi == "前锋":
qianfei += 1
elif posi == "中锋":
zhongfen += 1
elif posi == "后卫-前锋":
huoqian += 1
elif posi == "前锋-中锋":
qianzhong += 1
elif posi == "前锋-后卫":
qianhuo += 1
elif posi == "中锋-前锋":
zhongqian += 1
labels = '后卫', '前锋', '中锋', '后卫-前锋', "前锋-中锋", "前锋-后卫", "中锋-前锋"
values = [houwei, qianfei, zhongfen, huoqian, qianzhong, qianhuo, zhongqian]
# colors = ['y', 'm', 'b',]
explode = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
# 旋转角度
plt.title("NBA players position", fontsize=25)
# 标题
plt.pie(values, labels=labels, explode=explode,
startangle=180,
shadow=True, autopct='%1.1f%%')
plt.axis('equal')
plt.legend()
plt.show()
现在联盟流行小球时代,中锋的角色越来越不重要了,当然本来好的纯中锋就很少。姚明最棒,现在是最胖,哈哈
def show_player_draftYear(self):
player = pd.read_csv('./player.csv')
df = player
df = df[(~df['draftYear'].isin([0]))] # 逆函数 剔除{draftYear列含有数值[0]}的dataframe
df = df['draftYear'].value_counts() # 统计各个年份球员人数
df.index.name = 'Year' # 为数据设置索引值
df = df.sort_index(ascending=True) # 按照降序
## 绘制条形统计图
df.plot(kind='barh', alpha=0.5, grid=True) # kind参数有’line’线型统计图, ‘bar’条形统计图, #‘barh’横向条形统计图, ‘kde’直方图,根据需要自己调节
plt.xlabel('years')
plt.ylabel('count')
plt.title('2017-2018 NBA season players')
plt.show()
条形统计图
横向条形图
现在NBA球员都是新生代,19年也是选秀大年,人数比较多,最老的球员也就是01年进入NBA的泰森.钱德勒,目前效率于火箭队,以及保罗加索尔,目前效率于开拓者。02年的就是热火老将队魂哈斯勒姆一个。而03一代就剩2个了,小皇帝和科沃尔“周杰伦”
player = pd.read_csv('./player.csv')
career_age = player['experience'].value_counts() # 职业年龄统计
career_age.values # 各职业时间对应人数
career_age.index # 各职业时间
k = career_age.index * career_age.values # 各职业时间*各职业时间对应人数
k = pd.Series(k) # 转换数据类型
averAge = (k.sum() * 1.0) / career_age.sum()
print(averAge)
结果是:3.833648393194707
NBA球员竞技状态要求很高,一旦对自己的管理松懈了,状态下滑是很快的,像科比,詹姆斯这些人都是非常自律的人,巅峰时间很长,单打能力很厉害的小甜瓜安东尼,现在不少无球可打。球员的巅峰状态很短,从这里可以看出球员效率时间普遍很短。且行且珍惜,不要浪费上天赐给你的天赋,好嘛?姚头叹琦!!!!!