专栏名称: 稀土圈
掘金团队是一个新锐的互联网创业团队,服务用户是互联网技术开发者和从业者。旗下产品有:(专注技术干货的)掘金,(优质的下线活动)Meetup。可以戳 http://xitu.io 了解更多。对了,稀土君爱你们?
目录
相关文章推荐
微同城本地便民  ·  古人留下的六副后悔药,人生路上须回头! ·  5 小时前  
微同城本地便民  ·  古人留下的六副后悔药,人生路上须回头! ·  5 小时前  
科研大匠  ·  重磅:掌舵近20年后,李党生卸任Cell ... ·  3 天前  
环球科学科研圈  ·  大豆期货预测精度超过99%!中南大学刘辉团队 ... ·  昨天  
PaperWeekly  ·  北京内推 | ... ·  2 天前  
51好读  ›  专栏  ›  稀土圈

[译] 使用 Pandas 对 Kaggle 数据集进行统计数据分析

稀土圈  · 公众号  ·  · 2018-11-13 19:00

正文

请到「今天看啥」查看全文


, 'Name' , 'Sex' , 'Age' , 'Height' , 'Weight' , 'Team' , 'NOC' , 'Games' , 'Year' , 'Season' , 'City' ,
# 'Sport' , 'Event' , 'Medal' ]

我能想到的一些事情是,我们可以查看奥运会运动员的平均身高和体重,或者通过不同的运动来划分他们。我们还可以查看依赖于性别的两个变量的分布。我们甚至还可以看到每个国家有多少奖牌,将此作为时间序列,来查看整个二十世纪文明的兴衰。

可能性是无限的!但首先让我们来解决这个难题:我们的数据集有多完整?

def NaN_percent(df, column_name):
   row_count = df[column_name].shape[0]
   empty_values = row_count - df[column_name].count()
   return (100.0*empty_values)/row_count
for i in list(df):
   print(i +': ' + str(NaN_percent(df,i))+'%')  
'''
0% incomplete columns omitted for brevity.
Age: 3.49444518214%
Height: 22.193821095%
Weight: 23.191180159%
Medal: 85.3262072323% --Notice how 15% of athletes did not get any medals
'''

在序列数据上使用 Pandas 的计数方法可以得到非空行的数量。而通过查看 shape 属性,可以查看到总的行数,不管它们是否为空。

之后就是减法和除法的问题了。我们可以看到只有四栏的属性不完整:身高、体重、年龄和奖牌。

奖牌属性的不完整是因为一个运动员可能实际上并没有赢得奖牌,所以可以预料到这条数据是不完全的。然而,在体重、身高和年龄的方面,不完整的数据让我们面临着相当大的挑战。

我试着用不同的年份对这些数据行进行过滤,但这种不完整性似乎随着时间的推移而保持一致,这让我觉得可能是有一些国家不提供运动员的这些相关数据。

开始我们真正的分析: 奖牌情况是怎样的?

我们问的第一个问题是,自 1900 年以来,有多少不同的人获得过奖牌?下面的代码片段回答了这个问题:







请到「今天看啥」查看全文