这篇文章主要会提到资料分组
会继续利用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上找到一笔关於学生成绩的纪录
方便进行分组的比较
先把这笔资料读进来
看看资料的架构长怎样
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还有强大的资料运算处理能力
已经完美设计好的套件
可以更快速地处理这篇学到的聚合函数,并且整合
最後用易读性高的表格显示
下一篇文章会继续针对资料分析的语法学习
今日目标 学习了解 Python Pandas 资料存取与运用视觉化呈现数据 DataFrame 资...
目前我们实现了即时搜寻显示书名相符的书单资料,但是当我切换到其他路由之後又想再回到上一页的搜寻结果,...
条件(三元)运算子 三元运算子:有时在网路找资料会看到会带有 ? 的程序码,类似在做条件判断,不确定...
今天是最後一天铁人赛, 好像没有完赛心得就不完美了一样, 原本想说不应该在三十天时写心得, 毕竟这...
上一篇提到下了 tsc --init 指令之後会创建出一个 tsconfig.json 的档案,这个...