Pandas DataFrame使用实例1:英超积分榜

import pandas as pd

用英超积分榜这个实例来熟悉下pandas中DataFrame的操作。首先从网上抠一个当前的英超积分榜,保存为ecxel格式。然后导入到pandas中,初始化为一个DataFrame。

对表格的各种操作中总体上就可以分为4类:查,改,增,删。下面练习一下。

df = pd.read_excel("英超积分表.xlsx")

其完整数据,如下表:

df

排名球队场次积分胜平负进球失球净胜球01曼城3377245469244512曼联3266199464352923莱斯特城3259185958372134切尔西32551510750311945西汉姆联3255167953421156热刺33531581056381867利物浦3253158954381678埃弗顿3149147104340389阿森纳32461371244368910利兹联324614414505001011阿斯顿维拉314413513443591112狼队3241118133241-91213水晶宫3138108133352-191314南安普敦3236106164058-181415纽卡斯尔323598153553-181516布莱顿3234713123338-51617伯恩利323389152645-191718富勒姆3327512162543-181819西布朗322459182862-341920谢菲尔德联321442261756-39

查看争冠球队

我们假设目前的积分榜前三名还有争冠希望,来看下前三名是谁。这个需求实际就是”查”,因为该表格已经按照积分排序了,因此就是查找df中前n行记录。可以通过两种常用的方法:

方法1: df.head(3)

方法2: df.iloc[:3, :]

结果分析:曼城夺冠基本稳了吧。联赛共38论,还有5轮的情况下领先少赛一场的曼联11分。


df.iloc[:3, :]

排名球队场次积分胜平负进球失球净胜球01曼城3377245469244512曼联3266199464352923莱斯特城32591859583721

查看争四球队

英超的争四历来激烈无比,为了欧冠名额要拼啊,我们来看下目前的争四形势积分。这仍然是一个”查”操作,但我们只想关注积分信息。两种实现方式:

方法1: df.iloc[:7, :3]。即基于位置查找,取出前7行,且只看前三列的数据([‘排名’,’球队’,’场次’,’积分’])

方法2: df.loc[:7, ['排名', '球队', '场次','积分']]。即基于label进行查找。

结果分析:争四果然激烈啊。目测从第三名到第八名都在争四。仰天长叹,争四狂魔阿森纳居然争不了四了。温格走后,才知道教授的厉害呀。


df.loc[:7,['排名', '球队', '场次', '积分']]

排名球队场次积分01曼城337712曼联326623莱斯特城325934切尔西325545西汉姆联325556热刺335367利物浦325378埃弗顿3149

查看保级球队

同样是一个查找操作。可用方法有:

方法1: df.tail(3)

方法2: df.iloc[:-3,:]

结果分析:副班长的争夺者们,要加油了呀。留在英超,钱更多呀。


df.iloc[-4:-1, :]

排名球队场次积分胜平负进球失球净胜球1617伯恩利323389152645-191718富勒姆3327512162543-181819西布朗322459182862-34

查看指定球队

比如小明是西汉姆联的球迷,它只想看铁锤帮的信息。这仍是一个带有条件表达式的查找操作,查找条件是’球队’==’西汉姆联’。

结果分析:第五名啊,不错不错,这当然少不了林皇的功劳。

df[df['球队']=='西汉姆联']

排名球队场次积分胜平负进球失球净胜球45西汉姆联32551679534211

又比如小刚想查看下热刺和阿森纳两只球队的对比。这是一个带有条件表达式的查找操作,查找条件为:’球队”热刺’ or ‘球队”阿森纳’

df[(df['球队']=='热刺') | (df['球队']=='阿森纳')]

排名球队场次积分胜平负进球失球净胜球56热刺33531581056381889阿森纳32461371244368

将球队按照进攻水平排序

即按照’进球’数进行球队排序,来看看进攻火力最猛的球队是谁。

结果分析:


df_new = df.sort_values(by='进球', ascending=False)
df_new.loc[:6,['球队','进球']]

球队进球0曼城691曼联642莱斯特城585热刺566利物浦54

将球队按照防守水平排序

即按照’失球’数进行球队排序。

结果分析:曼城夺冠合情合理啊,进攻火力最猛,失球数有最少。独一档。


df_new = df.sort_values(by='失球', ascending=True)
df_new.loc[:6,['球队','失球']]

球队失球0曼城243切尔西311曼联3510阿斯顿维拉358阿森纳362莱斯特城375热刺386利物浦38

Original: https://blog.csdn.net/kaever/article/details/116102050
Author: 一从际发
Title: Pandas DataFrame使用实例1:英超积分榜

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/742880/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球