Python Pandas模块实现数据的统计分析的方法


Posted in Python onJune 24, 2021

一、groupby函数

Python中的groupby函数,它主要的作用是进行数据的分组以及分组之后的组内的运算,也可以用来探索各组之间的关系,首先我们导入我们需要用到的模块

import pandas as pd

首先导入我们所需要用到的数据集

customer = pd.read_csv("Churn_Modelling.csv")
marketing = pd.read_csv("DirectMarketing.csv")

我们先从一个简单的例子着手来看,

customer[['Geography','Gender','EstimatedSalary']].groupby(['Geography','Gender']).mean()

Python Pandas模块实现数据的统计分析的方法

从上面的结果可以得知,在“法国”这一类当中的“女性(Female)”这一类的预估工资的平均值达到了99564欧元,“男性”达到了100174欧元

当然除了求平均数之外,我们还有其他的统计方式,比如“count”、“min”、“max”等等,例如下面的代码

customer[['Geography','Gender','EstimatedSalary']].groupby(['Geography','Gender']).agg(['mean','count','max'])

Python Pandas模块实现数据的统计分析的方法

当然我们也可以对不同的列采取不同的统计方式方法,例如

customer[['Geography','EstimatedSalary','Balance']].groupby('Geography').agg({'EstimatedSalary':'sum', 'Balance':'mean'})

Python Pandas模块实现数据的统计分析的方法

我们对“EstimatedSalary”这一列做了加总的操作,而对“Balance”这一列做了求平均值的操作

二、Crosstab函数

在处理数据时,经常需要对数据分组计算均值或者计数,在Microsoft Excel中,可以通过透视表轻易实现简单的分组运算。而对于更加复杂的分组计算,“Pandas”模块中的“Crosstab”函数也能够帮助我们实现。

例如我们想要计算不同年龄阶段、不同性别的平均工资同时保留一位小数,代码如下

pd.crosstab(index=marketing.Age, columns=marketing.Gender, values=marketing.Salary, aggfunc='mean').round(1)

Python Pandas模块实现数据的统计分析的方法

当然我们还可以用该函数来制作一个更加复杂一点的透视表,例如下面的代码

pd.crosstab(index=[marketing.Age, marketing.Married], columns=marketing.Gender,values=marketing.Salary, aggfunc='mean', margins=True).round(1)

Python Pandas模块实现数据的统计分析的方法

三、Pivot_table函数

和上面的“Cross_tab”函数的功能相类似,对于数据透视表而言,由于它的灵活性高,可以随意定制你的分析计算要求,而且操作性强,因此在实际的工作生活当中被广泛使用,

例如下面的代码,参数“margins”对应表格当中的“All”这一列

pd.pivot_table(data=marketing, index=['Age', 'Married'], columns='Gender', values='Salary', aggfunc='mean', margins=True).round(1)

Python Pandas模块实现数据的统计分析的方法

四、Sidetable函数

“Sidetable”可以被理解为是“Pandas”模块中的第三方的插件,它集合了制作透视表以及对数据集做统计分析等功能,让我们来实际操作一下吧

首先我们要下载安装这个“Sidetable”组件,

pip install sidetable

五、Freq函数

首先介绍的是“Sidetable”插件当中的“Freq”函数,里面包含了离散值每个类型的数量,其中是有百分比形式来呈现以及数字的形式来呈现,还有离散值每个类型的累加总和的呈现,具体大家看下面的代码和例子

import sidetable
marketing.stb.freq(['Age'])

Python Pandas模块实现数据的统计分析的方法

“Age”这一列有三大类分别是“Middle”、“Young”以及“Old”的数据,例如我们看到表格当中的“Middle”这一列的数量有508个,占比有50.8%

marketing.stb.freq(['Age'], value='AmountSpent')

Python Pandas模块实现数据的统计分析的方法

例如上面的代码,显示的则是比方说当“Age”是“Middle”的时候,也就是中年群体,“AmountSpent”的总和,也就是花费的总和是762859元

六、Missing函数

“Sidetable”函数当中的“Missing”方法顾名思义就是返回缺失值的数量以及百分比,例如下面的代码,“History”这一列的缺失值占到了30.3%

marketing.stb.missing()

Python Pandas模块实现数据的统计分析的方法

七、Counts函数

“Sidetable”函数当中的“counts”方法用来计算各个类型的离散值出现的数量,具体看下面的例子

marketing.stb.counts()

Python Pandas模块实现数据的统计分析的方法

例如“Gender”这一列中,总共有两个,也就是“unique”这一列所代表的值,其中“Female”占到的比重更大,有506个,而“Male”占到的比重更小一些,有494个

到此这篇关于Python Pandas模块实现数据的统计分析的方法的文章就介绍到这了,更多相关Pandas模块实现数据的统计分析内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 异常处理实例详解
Mar 12 Python
浅析Python多线程下的变量问题
Apr 28 Python
解析Python中的二进制位运算符
May 13 Python
python 列表,数组,矩阵两两转换tolist()的实例
Apr 04 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
python实现经典排序算法的示例代码
Feb 07 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 Python
FP-growth算法发现频繁项集——发现频繁项集
能让Python提速超40倍的神器Cython详解
Jun 24 #Python
FP-growth算法发现频繁项集——构建FP树
python ansible自动化运维工具执行流程
关于python中readlines函数的参数hint的相关知识总结
详解Python为什么不用设计模式
linux中nohup和后台运行进程查看及终止
Jun 24 #Python
You might like
php 删除cookie和浏览器重定向
2009/03/16 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
javascript 写类方式之一
2009/07/05 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
python 实现插入排序算法
2012/06/05 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
python selenium 弹出框处理的实现
2019/02/26 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
公司前台接待岗位职责
2013/12/03 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
联谊活动总结
2014/08/28 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
MySQL索引失效场景及解决方案
2022/07/23 MySQL