{DAY 22} Pandas 学习笔记part.8

前言

这篇文章主要会提到资料分组

会继续利用kaggle上的开源资料进行更多的pandas练习

Kaggle: Your Machine Learning and Data Science Community

看的课程还是Coursera上的 Introduction to Data Science in Python

Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera

练习是利用上述课程里教的搭配以前在学校学过的知识

并且使用kaggle实际的资料档

整理出来的笔记

资料的分组

现在要练习资料的分组

在数据分析中,其实比起针对一笔一笔的资料分析

更方便的做法是将资料进行分组後

在针对不同组别类型进行下一步的资料分析

像是性别、城市、国家、属性等等

这是从kaggle上找到一笔关於学生成绩的纪录

方便进行分组的比较

Students Performance in Exams

先把这笔资料读进来

看看资料的架构长怎样

import pandas as pd

df = pd.read_csv("StudentsPerformance.csv", index_col=0)
df.head()

可以看到资料有分成性别、组别、教育类型、午餐、考试准备的课程,还有不同考试的分数

接着练习使用.groupby()进行分组

假如现在想用性别把所有资料分成两组

df.groupby("gender")

由於单纯用groupby会回传内存地址,并不好解读,所以放到list里

list(df.groupby("gender"))

可以看到使用groupby之後,资料被依照性别分成了两个组别回传

如果依照种族、学历等等,也会依照同样的形式将所有资料分类

接下来就可以在分组後面接上聚合函数进行aggregation的聚合操作

假如现在想计算男生女生在各个学科里的平均分数

df.groupby("gender").mean()

可以看到groupby搭配聚合函数後

很快速的算出不同性别在不同学科的平均数

还有很多的聚合函数

像是

最大值.max()、最小值.min()、中位数medium.()、标准差std.()、变异数var.()

print("不同组别的最大值", df.groupby("race/ethnicity").max())


可以看到回传的资料根据group A到group E分别在不同栏位里的最大值

如果想针对不同栏位分别求不同的值,

或是只想知道特定几个栏位

可以利用dictionary指定想要的栏位跟想要计算的聚合函数

df.groupby("race/ethnicity").agg({"math score":"mean","reading score":"std"})

小结

今天练习的资料操作搭配到聚合函数

pandas还有强大的资料运算处理能力

已经完美设计好的套件

可以更快速地处理这篇学到的聚合函数,并且整合

最後用易读性高的表格显示

下一篇文章会继续针对资料分析的语法学习


<<:  所以什麽是MQTT啊?

>>:  初探 AJAX 与 Fetch API

[2020铁人赛Day29]糊里糊涂Python就上手-Pandas的观念与运用(下)

今日目标 学习了解 Python Pandas 资料存取与运用视觉化呈现数据 DataFrame 资...

Day 24:路由搜查队-route.query

目前我们实现了即时搜寻显示书名相符的书单资料,但是当我切换到其他路由之後又想再回到上一页的搜寻结果,...

JavaScript Day23 - 条件(三元)运算子

条件(三元)运算子 三元运算子:有时在网路找资料会看到会带有 ? 的程序码,类似在做条件判断,不确定...

【这些年我似是非懂的 Javascript】Day 30 - 完赛心得

今天是最後一天铁人赛, 好像没有完赛心得就不完美了一样, 原本想说不应该在三十天时写心得, 毕竟这...

Day 3 设定 tsconfig.json 档

上一篇提到下了 tsc --init 指令之後会创建出一个 tsconfig.json 的档案,这个...