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基于二分查找实现求整数平方根的方法
May 12 Python
python中正则的使用指南
Dec 04 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
Python3实现的简单三级菜单功能示例
Mar 12 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 Python
PyTorch中的Variable变量详解
Jan 07 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
基于python实现音乐播放器代码实例
Jul 01 Python
python将数据插入数据库的代码分享
Aug 16 Python
关于的python五子棋的算法
May 02 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中for与foreach的区别分析
2011/03/09 PHP
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
简单的js表单验证函数
2013/10/28 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
javascript如何实现create方法
2019/11/04 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
图解Python变量与赋值
2018/04/03 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
英文版区域经理求职信
2013/10/23 职场文书
文案策划岗位职责
2015/02/11 职场文书
家属联谊会致辞
2015/07/31 职场文书
2016年国陪研修感言
2015/11/18 职场文书
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电