整理作业用的

# coding=utf-8#第一步,导出相关函数库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import math
import scipy.stats as st
import statsmodels.api as sm
import seaborn as sns
from pylab import mpl
from matplotlib.font_manager import FontProperties#中文显示
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定SimHei字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

第一步:导入函数库+中文显示

#第二步,加载数据
def loaddata():datapath=r'C:\Users\安航正\Desktop\athlete_events.csv'#路径datapath,编码方式gbk(用utf-8可能出现中文编码问题),允许空格athletedata=pd.read_csv(datapath,encoding='gbk', skipinitialspace=True)sex = {'F':'女性','M':'男性'}athletedata['Sex'] = athletedata.Sex.map(sex)#因为原数据中的性别用“F”和“M”表示,不好看,用sex表示对应关系,将athletedata中的Sex中的W和M替换为中文,替换关系为sex,为方便理解特此用sex和Sex区别return athletedata

第二步骤:将csv文件导入到python中并用athletedata表示(并将性别替换为中文)

def datadescirbe():#读取数据(可以取一样的名字athletedata)athletedata=loaddata()#打印数据的列的名字print(athletedata.columns)#打印各列数据个数/是否有空缺值/字段类型print(athletedata.info())#打印前五行数据print(athletedata.head())#数据描述各个变量#这一列中一共有多少个数据,这些数据中出现了多少类,出现最多的类别是什么,出现了多少次print(athletedata['Sex'].describe())print(athletedata['Age'].describe())print(athletedata['Height'].describe())print(athletedata['Weight'].describe())print(athletedata['Team'].describe())print(athletedata['Sport'].describe())#分析具体某一项数据#譬如身高height=athletedata['Height']median=height.median()print("中位数为%f"%median)mean=height.mean()print("均值为%f"%mean)#标准差std=height.std()print("标准差为%f"%std)#偏度skew=height.skew()print("偏差为%f"%skew)#峰度kurt=height.kurt()print("峰度为%f"%kurt)#其实可以一段代码如下显示出来agglomeration=height.agg(['mean','median','sum','std','skew','kurt'])print(agglomeration)

第三步:简单的预览一下数据,进行数据分析

Index([‘ID’, ‘Name’, ‘Sex’, ‘Age’, ‘Height’, ‘Weight’, ‘Team’, ‘NOC’, ‘Games’,
‘Year’, ‘Season’, ‘City’, ‘Sport’, ‘Event’, ‘Medal’],
dtype=‘object’)

打印列的名字columns输出结果

<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 271116 entries, 0 to 271115
Data columns (total 15 columns):
ID 271116 non-null int64
Name 271116 non-null object
Sex 271116 non-null object
Age 261642 non-null float64
Height 210945 non-null float64
Weight 208241 non-null float64
Team 271116 non-null object
NOC 271116 non-null object
Games 271116 non-null object
Year 271116 non-null int64
Season 271116 non-null object
City 271116 non-null object
Sport 271116 non-null object
Event 271116 non-null object
Medal 39783 non-null object
dtypes: float64(3), int64(2), object(10)
memory usage: 31.0+ MB
None

athletedata.info()打印各列数据个数/是否有空缺值/字段类型

ID Name Sex Age Height Weight Team
0 1 A Dijiang 男性 24.0 180.0 80.0 China
1 2 A Lamusi 男性 23.0 170.0 60.0 China
2 3 Gunnar Nielsen Aaby 男性 24.0 NaN NaN Denmark
3 4 Edgar Lindenau Aabye 男性 34.0 NaN NaN Denmark/Sweden
4 5 Christine Jacoba Aaftink 女性 21.0 185.0 82.0 Netherlands
NOC Games Year Season City Sport
0 CHN 1992 Summer 1992 Summer Barcelona Basketball
1 CHN 2012 Summer 2012 Summer London Judo
2 DEN 1920 Summer 1920 Summer Antwerpen Football
3 DEN 1900 Summer 1900 Summer Paris Tug-Of-War
4 NED 1988 Winter 1988 Winter Calgary Speed Skating
Event Medal
0 Basketball Men’s Basketball NaN
1 Judo Men’s Extra-Lightweight NaN
2 Football Men’s Football NaN
3 Tug-Of-War Men’s Tug-Of-War Gold
4 Speed Skating Women’s 500 metres NaN

athletedata.head()打印前五行数据

count 271116
unique 2
top 男性
freq 196594
Name: Sex, dtype: object
count 261642.000000
mean 25.556898
std 6.393561
min 10.000000
25% 21.000000
50% 24.000000
75% 28.000000
max 97.000000
Name: Age, dtype: float64
count 210945.000000
mean 175.338970
std 10.518462
min 127.000000
25% 168.000000
50% 175.000000
75% 183.000000
max 226.000000
Name: Height, dtype: float64
count 208241.000000
mean 70.702393
std 14.348020
min 25.000000
25% 60.000000
50% 70.000000
75% 79.000000
max 214.000000
Name: Weight, dtype: float64
count 271116
unique 1184
top United States
freq 17847
Name: Team, dtype: object
count 271116
unique 66
top Athletics
freq 38624
Name: Sport, dtype: object

.describe()函数对object类型和float类型的数据的描述

中位数为175.000000
均值为175.338970
标准差为10.518462
偏差为0.018477
峰度为0.177728
/#或者是
mean 1.753390e+02
median 1.750000e+02
sum 3.698688e+07
std 1.051846e+01
skew 1.847730e-02
kurt 1.777280e-01
Name: Height, dtype: float64

中位数均值标准差偏差峰度的输出

def dataplot():plot=loaddata()#获得金牌的人员中年龄的分布//条形图#将获得金牌筛选出来goldMedals=plot[(plot.Medal=='Gold')]#print(goldMedals.head()) //调试用#定义画布和布局##将年龄中空缺值去掉ageGoldMedals=goldMedals[(goldMedals['Age']).notnull()]plt.figure(figsize=(30,10))  #画布大小plt.tight_layout()  #紧凑型布局sns.countplot(ageGoldMedals['Age'])  #绘制分布图plt.title('获得金牌人员的年龄分布')   #显示出来#获得金牌的身高和体重的分布//散点图#将身高和体重的空缺值去掉HWGoldMedals=goldMedals[(goldMedals['Height']).notnull()&(goldMedals['Weight'].notnull())]#print(HWGoldMedals.head())//调试用#绘制散点图plt.figure(figsize=(30,10)) #画布大小sns.scatterplot(x="Height",y="Weight",data=HWGoldMedals)plt.title('金牌获得者的身高体重分布')plt.show()#金牌运动员不同性别的平均年龄变化//折线图##筛选出得过金牌的对应性别,并且求出每一年的对应性别的年龄平均值,平均值分配在average_age列中去Wgold = goldMedals[(goldMedals['Sex'] == '女性')]NWgold=Wgold.groupby(by = ['Year']).Age.agg('mean').reset_index(name = "average_age")Mgold = goldMedals[(goldMedals['Sex'] == '男性')]NMgold=Mgold.groupby(by = ['Year']).Age.agg('mean').reset_index(name = "average_age")#print(NWgold)//调试#print(NMgold)#两部分数据生成两个表//有格子好看一点QWQNWgold.plot(x='Year',y='average_age')plt.grid(True)NMgold.plot(x='Year',y='average_age')plt.grid(True)plt.title('金牌运动员不同性别的平均年龄变化')plt.show()#两部分数据生成一个表进行对比sns.lineplot(x = 'Year', y = 'average_age', data = NMgold)sns.lineplot(x = 'Year', y = 'average_age', data = NWgold)plt.title('金牌运动员不同性别的平均年龄变化')plt.show()#参与者不同性别的年龄箱线图&提琴图#将年份和性别中的空缺值去除year_sex=plot[(plot['Sex']).notnull()&(plot['Year'].notnull())]#箱线图sns.boxplot(x = 'Sex', y = 'Age', data = year_sex)plt.title('运动员不同性别的年龄箱线图')plt.show()#提琴图sns.violinplot(x = 'Sex', y = 'Age', data = year_sex)plt.title('运动员不同性别的年龄提琴图')plt.show()#男女运动员的身高和体重分布//散点图#将性别和身高和体重的空缺值去除sex_hw=plot[(plot['Sex']).notnull()&(plot['Height']).notnull()&(plot['Weight']).notnull()]#print(sex_hw)//调试#x轴对应身高,y轴对应体重,不同性别用点的颜色来区分sns.scatterplot(x='Height', y='Weight', data=sex_hw, hue='Sex')plt.show()#绘制男运动员的身高体重分布//点状图#用上一个图表中已经去除空缺值的数据选择男性单一性别M_hw=sex_hw[(sex_hw['Sex']=='男性')]plt.figure(figsize=(40,10))#x轴身高,y轴体重sns.pointplot('Height','Weight',data=M_hw)plt.title('男运动员的身高体重变化')plt.show()

第三步:数据可视化
以下是生成的数据可视化






if __name__ == '__main__':datadescirbe()dataplot()

第四步:写个main函数,将数据分析函数和数据可视化函数引入

此外
还写了个身高的qq图,但是感觉不太得劲的样子,而且没什么实际作用

120年奥运会数据分析和可视化相关推荐

  1. 120年奥运会数据分析

    文章目录 背景描述 120年奥运会数据分析 一.导入相应的包和数据集 二. 数据清洗/处理 三. 图表:词云 通过创建词云展示奥运会的热门运动项目,字体越大代表越热门 四. 图表:饼图 分析奥运会男女 ...

  2. R数据分析|可视化|dplyr|Kaggle奥运会数据集(一)

    R数据分析|可视化|dplyr|Kaggle奥运会数据集(一) 研究1896年至2016年奥运会运动员的数据集,主要指标有身高.体重.年龄.国籍.参与项目.是否获得金/银/铜牌.通过运用R软件对数据作 ...

  3. R数据分析|可视化|dplyr|Kaggle奥运会数据集(二)

    R数据分析|可视化|dplyr|Kaggle奥运会数据集(二) 由于这个数据集较为庞大,想深入探究点东西,所以想缩小数据范围.那么我们就仅关注"男子球类运动".这里用到的是grep ...

  4. python信用卡违约预测分析_Python数据分析及可视化实例之银行信用卡违约预测(24)...

    1.项目背景: 银行体系对于信用可违约进行预测,原始数据集如下: 2.分析步骤: (1)数据清洗(Data Cleaning) (2) 探索性可视化(Exploratory Visualization ...

  5. Python数据分析与可视化概述

    数据分析与可视化概述 一.数据.信息与数据分析 数据:是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质.状态以及相互关系等进行记载的物理符号或这些物理符号的组合.它是可识别的.抽象的符号. ...

  6. [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化

    本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化.GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口.GeoPandas扩展了Pandas ...

  7. MATLAB-基于长短期记忆网络(LSTM)的SP500的股票价格预测 股价预测 matlab实战 数据分析 数据可视化 时序数据预测 变种RNN 股票预测

    MATLAB-基于长短期记忆网络(LSTM)的SP500的股票价格预测 股价预测 matlab实战 数据分析 数据可视化 时序数据预测 变种RNN 股票预测 摘要 近些年,随着计算机技术的不断发展,神 ...

  8. python数据分析可视化实例-Python数据分析与可视化从入门到精通

    (1)没有高深理论,每章都以实例为主,读者参考书中源码运行,就能得到与书中一样的结果.(2)专注于Python数据分析与可视化操作中实际用到的技术.相比大而全的书籍资料,本书能让读者尽快上手,开始项目 ...

  9. python可视化数据分析-Python数据分析与可视化从入门到精通

    (1)没有高深理论,每章都以实例为主,读者参考书中源码运行,就能得到与书中一样的结果.(2)专注于Python数据分析与可视化操作中实际用到的技术.相比大而全的书籍资料,本书能让读者尽快上手,开始项目 ...

最新文章

  1. python公共键_Python利用公共键如何对字典列表进行排序详解
  2. Python中super()和__init__()方法
  3. kmp——next数组的应用---cout the string
  4. netty服务器返回信息关闭,netty4 服务端同步客户端返回的结果
  5. C++的常量折叠(一)
  6. feign接口调用出现连接超时
  7. 王思聪被传成“老赖”, 北京二中院:假的!
  8. Crystal Report制作使用
  9. kafka安装完整步骤_还在寻找Kafka最新的安装教程吗?精细的安装步骤分享给大家...
  10. limitBy过滤器是配合数组使用的,限制数组元素的个数,话不多说,来个小例子。...
  11. 4.1下午英语阅读视频
  12. 微信支付需要证书认证时报“出现了内部错误”
  13. 【路径规划】基于matlab遗传和模拟退火算法机器人路径规划【含Matlab源码 1206期】
  14. 如何申请并使用 eepromARMtool 工具
  15. mimics软件临床应用.计算机辅助外科入门技术,Mimics软件临床应用:计算机辅助外科入门技术...
  16. [从头读历史] 第260节 左传 [BC717至BC658]
  17. 使用select2 实现拼音全拼和首字母 搜索
  18. 【菜鸟必看】CSDN博客字体颜色编码大全,前端颜色编码,都在这里了!!
  19. 无法连接imssage信息服务器,苹果iPhone X用iMessage发短信信息总是失败解决方法
  20. 冰蝎shell_冰蝎全系列有效:针对 HTTPS 加密流量的 webshell 检测研究

热门文章

  1. a+=a-=a*=a,求a的值为多少
  2. easeus恢复没有手机_EaseUS Partition Master 10.5 –最佳分区软件
  3. linux运维经典面试题总结
  4. LUA中测试鱼死亡动作、炸弹轨迹、炸弹爆炸动作
  5. 马云以2750亿财富第三次成为中国首富;扎克伯格:AWS云服务成本太高;小米否认冰箱由海尔代工 | EA周报...
  6. 记录一个在Unity中实现生成无限向上旋转楼梯效果
  7. 小明的保险箱(暴力破解zip)-学习笔记
  8. css动画详细知识点梳理
  9. 电脑回收站删除的文件怎么恢复?(2个方案任选)
  10. DWG文件打开很卡怎么办?一招叫它“瘦身”成功~