#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sun May 20 14:05:47 2018
@author: oyc
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
from bokeh.plotting import figure,show,output_notebook
from bokeh.palettes import brewer
myfont=fm.FontProperties(fname='/Library/Fonts/Arial Unicode.ttf') #字体路径
data=pd.read_csv('NationalNames.csv')
athletes=[{'name':'Jordan','full_name':'Michael Jordan','rookie_year':1984,'retired_year':2003,'sex':'M'},
{'name':'Tiger','full_name':'Tiger Woods','rookie_year':1996,'retired_year':2014,'sex':'M'}
]
def plotName(i,athlete):
name,full_name,rookie_year,retired_year,sex=athlete['name'],athlete['full_name'],athlete['rookie_year'],athlete['retired_year'],athlete['sex']
#取数据
df=data[data['Name']==name]
#print(df)
df=df[df['Gender']==sex]
#print(df)
#事业年限
career_years=range(rookie_year,retired_year)
#print(career_years)
prior_generation_years=range(rookie_year-25,rookie_year)
total_years=range(rookie_year-25,retired_year+25)
#计算一下
rookie_name_count=df[df['Year']==rookie_year]['Count'].sum()
retired_name_count=df[df['Year']==retired_year]['Count'].sum()
#print(retired_name_count)
#rookie_name_count1=df[df['Year']==rookie_year]
#print(rookie_name_count1)
#整个职业生涯
career_name_count=df[df['Year'].isin(career_years)]['Count'].sum()
prior_name_count=df[df['Year'].isin(prior_generation_years)]['Count'].sum()
#平均值 :1 在职业生涯中平均每年有多少个这个名字
career_name_avg=df[df['Year'].isin(career_years)]['Count'].mean()
career_name_avg=round(career_name_avg,2) #保留2位小数
prior_name_avg=df[df['Year'].isin(prior_generation_years)]['Count'].mean()
prior_name_avg=round(prior_name_avg,2) #保留2位小数
#计算影响力
influence_rate=round(100*((career_name_avg-prior_name_avg)/prior_name_avg)) #保留2位小数
p=figure(title=(full_name+' influence trend'),x_axis_label='Year',y_axis_label='Count')
df=df[df['Year'].isin(total_years)]
x=df['Year'].tolist()
y=df['Count'].tolist()
p.line(x,y,legend=name,line_width=2)
p.quad(top=[max(y)],bottom=[0],left=[rookie_year],right=[retired_year],color='#00ff00',alpha=0.3,legend='Active Career')
show(p)
print('以上显示了{0}如何影响{1}的取名'.format(full_name,name))
print('{0}个名字叫{1}的婴儿出生在{2}年,{3}的出道年份'.format(rookie_name_count,name,rookie_year,full_name))
print('{0}个名字叫{1}的婴儿出生在{2}年,{3}退役的年份'.format(retired_name_count,name,retired_year,full_name))
print('平均值:在他的运动生涯中,平均每年有{0}个名字叫{1}的婴儿出生'.format(career_name_avg,name))
print('比较而言,在他出道前的25年中,只有平均{0}个名叫{1}的婴儿出生'.format(prior_name_avg,name))
print('在{0}出道后,对婴儿取名的影响力为{1}'.format(name,influence_rate))
print('\n\n')
for i,athlete in enumerate(athletes):
plotName(i,athlete)
没有合适的资源?快使用搜索试试~ 我知道了~
利用python进行简单案例数据分析
共2个文件
py:1个
csv:1个
需积分: 41 100 下载量 129 浏览量
2018-05-20
14:17:14
上传
评论 8
收藏 11.54MB ZIP 举报
温馨提示
最好使用notebook运行.如果直接用使用python运行,只会出现一张图片。
资源推荐
资源详情
资源评论
收起资源包目录
体育明星的影响力分析.zip (2个子文件)
体育明星的影响力分析
NationalNames.csv 42.3MB
体育明星的影响力.py 3KB
共 2 条
- 1
资源评论
pangpang_csdn
- 粉丝: 20
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功