【学习】数据处理基础知识(汇总和计算描述统计)【pandas】
pd对象拥有一组常用的数学和统计方法。大部分都属于约简和汇总统计,用于从Series中单个值,如sum 和 mean 或从DF的行或列中提取一个Series。
1、 描述和汇总统计方法
#汇总和计算描述统计
import numpy as np
import pandas as pd #定义一个4*2维的数据结构
df = pd.DataFrame([[1.4, np.nan], [7.1, -4.5], [np.nan, np.nan], [0.75, -1.3]], index = list('abcd'), columns = ['one', 'two'])
df
#默认列汇总
df.sum()
#行汇总
df.sum(axis = 1) #Na值被自动排除,除非整个切片都是NA,通过 skipna选项可以禁用该功能
df.mean(axis =1, skipna = False)
df.sum()
Out[120]:
one 9.25
two -5.80
dtype: float64 df.sum(axis = 1)
Out[121]:
a 1.40
b 2.60
c 0.00
d -0.55
dtype: float64 df.mean(axis =1, skipna = False)
Out[122]:
a NaN
b 1.300
c NaN
d -0.275
dtype: float64
约简方法的选项

#定义一个4*2维的数据结构
df = pd.DataFrame([[1.4, np.nan], [7.1, -4.5], [np.nan, np.nan], [0.75, -1.3]], index = list('abcd'), columns = ['one', 'two'])
df
#默认列汇总
df.sum()
#行汇总
df.sum(axis = 1) #Na值被自动排除,除非整个切片都是NA,通过 skipna选项可以禁用该功能
df.mean(axis =1, skipna = False) #有此方法,idmin 和 idxmax返回的是间接统计,比如达到最小值或最大值的索引
#达到最大值的索引
df.idxmax()
df.idxmin() #累计型方法
df
#累计汇总
df.cumsum() #describe用于一次性产生多个汇总统计
df.describe() #对于非数值型数据,describe会产生另外一种汇总统计
obj = pd.Series(['a', 'a', 'b', 'c'] * 4)
obj
obj.describe() obj.describe()
Out[130]:
count 16
unique 3
top a
freq 8
dtype: object
描述和汇总统计方法


2、 相关系数和协方差
有些汇总统计是通过参数对计算出来的
计算百分数变化:.pct_change()
Series的corr方法用于计算两个Series中重叠的、非NA的,按索引对齐的值的相关系数, cov用于计算协方差
DataFrame的corr和cov方法将以DataFrame的形式返回完整的相关系数或协方差矩阵
利用DataFrame的corrwith方法,计算其列或行跟另一个Series或DataFrame之间的相关系数
df = pd.DataFrame(np.random.randn(5, 10), index= list('abcde'), columns = ['x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10'])
df
returns = df['x1'].pct_change()
returns
returns.tail()
df.x1.corr(df.x2)
df.x1.cov(df.x2)
df.corrwith(df.x3)
3、唯一值、值计数以及成员资格
#唯一值、值计数以及成员资格
obj = pd.Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c'])
obj
#第一个函数unique, 它可以得到Series中的唯一值数组
uniques = obj.unique()
uniques
uniques
Out[159]: array(['c', 'a', 'd', 'b'], dtype=object)
#返回的唯一值是未排序的,如果需要的话,对结果再次进行排序 (uniques.sort())
uniques.sort()
Out[164]: array(['a', 'b', 'c', 'd'], dtype=object)
#value_counts用于计算一个Series中各值出的频率
obj.value_counts()
Out[165]:
c 3
a 3
b 2
d 1
dtype: int64
#为了便于查看,结果Series是按值频率降序排列的
pd.value_counts(obj.values, sort = False)
Out[166]:
a 3
b 2
d 1
c 3
dtype: int64
#最后是isin,它用于判断矢量化集合的成员资格,可用于选取Series中或DataFrame列中数据的子集
mask = obj.isin(['b', 'c'])
mask
mask
Out[168]:
0 True
1 False
2 False
3 False
4 False
5 True
6 True
7 True
8 True
dtype: bool
obj[mask]
Out[169]:
0 c
5 b
6 b
7 c
8 c
dtype: object
#唯一值、值计数、成员资格方法
"""
isin 计算一个表示”Series各值是否包含于传入的值序列中“的布尔型数组
unique 计算Series中的唯一值数组,按发现的顺序返回
value_counts 返回一个Series, 其索引为唯一值,其值为频率,按计数值降序排序
"""
#有时,希望得到多个相关列的一张柱状图
data = pd.DataFrame({'Qu1':[1, 3, 4, 3, 4], 'Qu2':[2, 3, 1, 2, 3], 'Qu3': [1, 5, 2, 4, 4]})
data
Out[171]:
Qu1 Qu2 Qu3
0 1 2 1
1 3 3 5
2 4 1 2
3 3 2 4
4 4 3 4
#将value_counts传给该DF的apply函数就会出现
result = data.apply(pd.value_counts).fillna(0)
result Out[173]:
Qu1 Qu2 Qu3
1 1.0 1.0 1.0
2 0.0 2.0 1.0
3 2.0 2.0 0.0
4 2.0 0.0 2.0
5 0.0 0.0 1.0
【学习】数据处理基础知识(汇总和计算描述统计)【pandas】的更多相关文章
- 【学习】数据处理基础知识(基本功能)【pandas】
本章介绍pandas的重要功能,只记录一些重点内容 1.重新索引 pandas对象的一个重要方法是reindex,其作用是创建一个适应用新索引的新对象 #重新索引 obj = pd.Series([4 ...
- 关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL))
关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习 ...
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- jquery基础知识汇总
jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...
- Ant学习-001-ant 基础知识及windows环境配置
一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...
- 学习javascript基础知识系列第二节 - this用法
通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...
- 学习javascript基础知识系列第三节 - ()()用法
总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...
- 沉淀,再出发:Java基础知识汇总
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
- Oracle基础知识汇总一
Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接 https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...
随机推荐
- 厨娘ui设计文档
厨娘ui设计文档 一.概述 中国的饮食文化从古到今源远流长.在生活日益丰富的今天,人们对饮食的要求不仅仅是温饱,更讲究健康和美味.近年来,饮食甚至成为娱乐的一部分,关于吃的流行用语层出不穷,可见在当今 ...
- tar 命令 简易使用方法
创建压缩文件方法 tar zcf 压缩包存放位置 压缩那个目录/内容 (压缩) 例:在/data目录下压缩/etc/目录,并创建名称为etc.tar.gz [root@web01 /]# tar zc ...
- javascript 跨域请求详细分析(终极跨域解决办法)
自从我接触前端以来,接手的项目里面很大部分都是前后端分离的,后端只提供接口,前端根据后端接口渲染出实际页面.个人觉得这是一个挺好的模式,前后端各自负责各自的模块,分工明确,而且也给前端更大的发挥空间. ...
- echarts.init 使用jq获取初始化对象
var myChart = echarts.init($('#main')[0]);// 或者var myChart = echarts.init($('#main').get(0));
- 剑指Offer 19. 顺时针打印矩阵 (其他)
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...
- CentOS版Linux系统上运行ASP.NET应用
一.安装: 1. 安装Apache Http Server yum install httpd2. 安装Mono yum install mono3. 安装Mono插件,用来处理ASP.NET请求 y ...
- 【Linux常用命令】
1. ps aux | grep nginx 使用场景:是想查看nginx的打印日志,又不知道nginx的日志路径. ps :是查看进程的命令.使用该命令 可以确定有哪些进程正在运行和运行的状态.进程 ...
- Ajax之Json对象序列化传参
前端部分:传入参数 "groupObject" : jsonString //对象序列化传参 var projectGroup = {}; projectGroup["i ...
- 软件工程第四次作业 石墨文档IOS
待分析的产品:石墨文档IOS客户端 作业地址: https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505 第一部分 调研, 评测 1.下载并 ...
- CentOS7中使用yum安装Nginx的方法
最近无意间发现Nginx官方提供了Yum源.因此写个文章记录下. 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添加源: ...