机器学习-数据科学库 09 欧洲杯案例

该博客介绍了如何使用Pandas库对数据进行读取、基本信息查看和操作。包括访问数据框中的特定列、行,数据排序,以及利用groupby进行聚合分析。还展示了筛选特定条件的数据行、查找特定字符串开头的行以及选择指定列的方法。同时,文章通过实例展示了计算球队黄牌数的平均值,并探讨了如何高效地访问和过滤数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据准备

参考:https://github.com/zhoujinhai/pandasData/blob/master/Euro2012.csv

import pandas as pd

# 将数据集存入一个名为 euro12 的数据框内。
euro12 = pd.read_csv('data_analysis/Euro2012.csv')

数据基本信息

# 将数据集存入一个名为 euro12 的数据框内。
euro12 = pd.read_csv('data_analysis/Euro2012.csv')

# 获取基本信息
euro12['Goals']
euro12[['Team', 'Goals']]   # 单列/多列数据的访问
euro12.iloc[0, 0]  # iloc是通过位置索引/切片(左闭右开区间)  输出结果为0行0列的:'Croatia'
euro12.iloc[0:2, 0:2]   # 输出为0、1行,0、1列的数据
euro12.iloc[0:1, :]     # 输出为0行,所有列的数据,shape为[1 rows x 35 columns]
euro12.shape            # 输出euro12的形状:(16, 35)
euro12.loc[0, 'Team']   # loc是通过行列名称进行索引/切片(闭区间)
euro12.loc[0:2, 'Team':'Goals']
euro12.loc[:, 'Team']

# 有多少球队参与了 2012 欧洲杯?
# 不去重
euro12['Team'].nunique()

# 去重
euro12['Team'].unique()

# 该数据集中一共有多少列(columns)?
euro12.shape[1]

分析数据

# 将数据集中的列 Team, Yellow Cards 和 Red Cards 单独存为一个名叫 discipline 的数据框。
discipline = euro12[['Team', 'Yellow Cards', 'Red Cards']]
print(discipline)

# 对数据框 discipline 按照先 Red Cards 再 Yellow Cards 进行排序。
# sort_values按值进行排序
discipline.sort_values(by=['Red Cards', 'Yellow Cards']) 

# 按照Team的名字升序排序
discipline.sort_values(by=['Team'])

# 计算每个球队拿到的黄牌数的平均值。
# 采用分组聚合的操作,计算每个球队获得黄牌数的平均值
discipline.groupby('Team').agg({'Yellow Cards': ['sum', 'mean']})   

# 采用分组聚合的操作,计算全部球队获得黄牌数的平均值
discipline.groupby('Team').agg({'Yellow Cards': 'sum'}).mean()

# 找到进球数 Goals 超过 6 的球队数据。
index = euro12['Goals'] > 6 

# 以下两种形式等效
euro12.loc[index, :]
euro12[index]
#euro12.iloc[]  #非法访问

# 选取以字母 G 开头的球队数据。
euro12[euro12['Team'].str[0] == 'G']

# 选取前 7 列。
euro12.iloc[:, :7]

# 选取除了最后 3 列之外的全部列。
euro12.iloc[:, 0:-3]

# 找到 英格兰 (England)、意 大利 (Italy)和俄罗斯(Russia)的 射正率(Shooting Accuracy)。
# 通过索引加速访问
euro12.set_index('Team', inplace=True)
euro12.loc[['England', 'Italy', 'Russia'], 'Shooting Accuracy']    #通过索引直接访问数据

v

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值