【python数据分析-数据过滤与排序】

数据来源:和鲸社区-Numpy+Pandas数据处理·第五关-2012欧洲杯足球比赛数据
主要内容:

  • 数据过滤
  • 数据排序

知识点:

  • df.nunique() 计算唯一值数量
  • df.groupby().mean() 分组计算均值
  • df [[col1,col2,col3]]
  • df [df[co1]>2]
  • Pandas提取含有指定字符串的行或列
  • df.iloc[:,:] 切片
  • df.sort_values()
导入数据
import pandas as pd
filepath2 = '/home/mw/input/Pandas_exercise2020/Euro2012.csv'
euro12 = pd.read_csv(filepath2, sep=',')
euro12.head()

【python数据分析-数据过滤与排序】_第1张图片

计算球队数量,平均得分
#  有多少球队参与了2012欧洲杯?
euro12['Team'].nunique()
# 每支球队的平均得分
euro12[['Team','Goals']].groupby('Team').mean()

【python数据分析-数据过滤与排序】_第2张图片

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

【python数据分析-数据过滤与排序】_第3张图片

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

【python数据分析-数据过滤与排序】_第4张图片

# 选取以字母G开头的球队数据
euro12[euro12['Team'].str.startswith('G')]
  • 知识点
    Pandas提取含有指定字符串的行或列:
    完全匹配:==
    部分匹配:
    str.contains():包含一个特定的字符串
    参数na:缺少值NaN处理
    参数case:大小写的处理
    参数regex:使用正则表达式模式
    str.endswith():以特定字符串结尾
    str.startswith():以特定的字符串开头
    str.match():匹配正则表达式模式

注:要提取部分匹配的行,可以使用pandas的(str.xxx())方法,根据指定条件提取的字符串方法。

相关资料:https://blog.csdn.net/nixiang_888/article/details/109371043

【python数据分析-数据过滤与排序】_第5张图片

# 选取前7列
euro12.iloc[:,:7]
# 选取除了最后三列之外的全部列
euro12.iloc[:,:-3]
# 找到英格兰(England)、意大利(Italy)和俄罗斯(Russia)的射正率(Shooting Accuracy)
# 方法一:
euro12[euro12['Team'].isin(['England','Italy','Russia'])][['Team','Shooting Accuracy']]
#方法二:
euro12.loc[euro12['Team'].isin(['England', 'Italy', 'Russia']), ['Team','Shooting Accuracy']]
数据排序
# 对数据框discipline按照先Red Cards,再Yellow Cards进行排序
discipline.sort_values(by=['Red Cards','Yellow Cards'],ascending=True)

![在这里插入图片描述](https://img-blog.csdnimg.cn/1cc70fb2238d4909bdfb34ef29d8ae3b.png

数据计算
# 计算每个球队拿到的黄牌数的平均值
discipline[['Team', 'Yellow Cards']].groupby('Team').mean()

【python数据分析-数据过滤与排序】_第6张图片

你可能感兴趣的:(学记笔记,python,数据分析,pandas)