--知中有行,行中有知;以知为行,知行合一,学习编程成就更好的自己--
Python语言简洁生动,特别适合文科生学习入门IT世界,用几十行代码就能够做一个完整的爬虫脚本,开发效率杠杠的!短时间内即可解决工作和学习中碰到的各种棘手问题。(本人外语专业毕业,机缘巧合爱上编程,自学道路曲曲折折,痛并快乐!)在这里总结一下自学Python遇到的难点和重点,分享码过的代码和要点总结,希望能够给初学者一点启示和鼓励,同时愿意结交更多大神交流有助提升自己的水平。
前一阵2021年东京奥运会落下帷幕,奥运奖牌最终花落谁家也早已尘埃落定,今天利用网上公布的数据集合(数据源来自kaggle)对奖牌榜前20名国家情况做一下热力图展示吧,主要涉及两个步骤:
1.处理和截取符合要求的目标数据样本;
2.通过热力图方式来展示金银铜牌数量。
通过案例学习展示和分享,小白们可以清楚看到:数据清洗和可视化工作并没有多复杂,世上无难事只怕有心人。
1-读取和展示原始数据集:
该样本数据包括了所有获得奖牌国家的相关奖牌信息,Rank代表金牌数量排名,而Rank by Total代表所有奖牌总量排名。
2-检查字段类型,并以奖牌总数顺序提取前20位国家数据:
查看字段类型目的是检查数据是否适合后续分析和绘图,发现问题就调整相关字段;这里主要横向钻取了数据,利用了pandas筛选功能,后面要纵向截取数据。
3-只保留金银铜牌数据并重置索引信息:
保留有效数据,使用data.loc[:,["字段名1","字段名2"]]方法实现了纵向截取目标数据;重置索引为了使其符合热力图数据源结构。
4-利用Seaborn库绘制热力图:
奖牌总数情况和具体对比情况在此一目了然。
5-以金牌总数来查看一下呢:
横向钻取金牌总数前20名国家数据:
纵向钻取得到目标数据:
生成热力图如下:
代码汇总如下:
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
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号