文科生自学Python-2021年东京奥运会奖牌Top20热力图

--知中有行,行中有知;以知为行,知行合一,学习编程成就更好的自己--

Python语言简洁生动,特别适合文科生学习入门IT世界,用几十行代码就能够做一个完整的爬虫脚本,开发效率杠杠的!短时间内即可解决工作和学习中碰到的各种棘手问题。(本人外语专业毕业,机缘巧合爱上编程,自学道路曲曲折折,痛并快乐!)在这里总结一下自学Python遇到的难点和重点,分享码过的代码和要点总结,希望能够给初学者一点启示和鼓励,同时愿意结交更多大神交流有助提升自己的水平。

前一阵2021年东京奥运会落下帷幕,奥运奖牌最终花落谁家也早已尘埃落定,今天利用网上公布的数据集合(数据源来自kaggle)对奖牌榜前20名国家情况做一下热力图展示吧,主要涉及两个步骤:

1.处理和截取符合要求的目标数据样本;

2.通过热力图方式来展示金银铜牌数量。

通过案例学习展示和分享,小白们可以清楚看到:数据清洗和可视化工作并没有多复杂,世上无难事只怕有心人。

1-读取和展示原始数据集:

该样本数据包括了所有获得奖牌国家的相关奖牌信息,Rank代表金牌数量排名,而Rank by Total代表所有奖牌总量排名。

文科生自学Python-2021年东京奥运会奖牌Top20热力图

2-检查字段类型,并以奖牌总数顺序提取前20位国家数据:

查看字段类型目的是检查数据是否适合后续分析和绘图,发现问题就调整相关字段;这里主要横向钻取了数据,利用了pandas筛选功能,后面要纵向截取数据。

文科生自学Python-2021年东京奥运会奖牌Top20热力图

3-只保留金银铜牌数据并重置索引信息:

保留有效数据,使用data.loc[:,["字段名1","字段名2"]]方法实现了纵向截取目标数据;重置索引为了使其符合热力图数据源结构。

文科生自学Python-2021年东京奥运会奖牌Top20热力图

4-利用Seaborn库绘制热力图:

奖牌总数情况和具体对比情况在此一目了然。

文科生自学Python-2021年东京奥运会奖牌Top20热力图

5-以金牌总数来查看一下呢:

横向钻取金牌总数前20名国家数据:

文科生自学Python-2021年东京奥运会奖牌Top20热力图

纵向钻取得到目标数据:

文科生自学Python-2021年东京奥运会奖牌Top20热力图

生成热力图如下:

文科生自学Python-2021年东京奥运会奖牌Top20热力图

代码汇总如下:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import os
def Set_Work_Path(x):
    try:
        os.chdir(x)
        route = os.getcwd()
        return route
    except Exception:
        print("No Result")
work_path = r"E:DATA15AUG21"
display(Set_Work_Path(work_path))

data = pd.read_excel("Medals.xlsx",header=0,sheet_name="Details",engine="openpyxl")
display(data)

#Check the data types
display(data.dtypes)

#Select top 20 countries
data_top_20_total = data[data["Rank by Total"]<=20]
data_top_20_total = data_top_20_total.sort_values(by=["Rank by Total"],ascending=True)
display(data_top_20_total)

#Select the certain range of datasets and set Team as index
df = data_top_20_total.loc[:,["Team/NOC","Gold","Silver","Bronze"]]
df.set_index("Team/NOC",inplace=True)
display(df)

#draw the heatmap with Seaborn
f, ax = plt.subplots(figsize=(15, 10))
fig=sns.heatmap(df,annot=True,fmt="d",linewidths=0.5,cmap="Spectral") #Spectral RdBu_r
fig.set_title(label="Medals Heatmap of Top20 Countries 2021 Tokyo Olympic Games",fontdict = {"fontsize":18})
fig.xaxis.set_ticks_position("top")

#Select top 20 countries with gold medals
data_top_20_gold = data[data["Rank"]<=20]
data_top_20_gold = data_top_20_gold.sort_values(by=["Rank"],ascending=True)
display(data_top_20_gold)

#Select the certain range of datasets and set Team as index
df_gold = data_top_20_gold.loc[:,["Team/NOC","Gold","Silver","Bronze"]]
df_gold.set_index("Team/NOC",inplace=True)
display(df_gold)

#draw the heatmap with Seaborn
f, ax = plt.subplots(figsize=(15, 10))
fig=sns.heatmap(df_gold,annot=True,fmt="d",linewidths=0.5,cmap="RdBu_r") #Spectral RdBu_r
fig.set_title(label="Gold Medals Heatmap of Top20 Countries 2021 Tokyo Olympic Games",fontdict = {"fontsize":18})
fig.xaxis.set_ticks_position("top")

数据获取查看-数据加工和钻取-数据可视化出图,大家也利用身边的资源动手试一下吧!!!

END

我为人人,人人为我!!欢迎大家关注,点赞和转发!!!

~~人生不是赛场,梦想不容退场~~不断努力学习蜕变出一个更好的自己,不断分享学习路上的收获和感悟帮助他人成就自己!!!

展开阅读全文

页面更新:2024-04-15

标签:奖牌   东京   铜牌   数据源   纵向   字段   横向   样本   金银   金牌   奥运会   总数   目标   情况   代码   国家   数据   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top