【学习】数据处理基础知识(汇总和计算描述统计)【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 ...
随机推荐
- mybatis 使用IN 关键字
mybatis 使用IN 关键字,查询条件如果有多个,拼接成字符串,当做参数传入的时候可能会只查询一条数据,那是因为mybits 将它当做一个字符串来处理了,这时候就需要使用<foreach&g ...
- Linux下的5种I/O模型(转)
Linux下的五种I/O模型: l 阻塞I/O l 非阻塞I/O l I/O复用(select.poll.epoll) l 信号驱动I/ ...
- 博弈论:寻找先手必胜策略——Grundy值
选修了人工智能课程,老师布置了调研任务:Grundy,开始看了一些资料并没有看懂. 后来找到了一篇文,写的很棒,里面有好多博弈相关的问题与分析,分享出来给大家: http://endless.logd ...
- css的性质
css两个性质: 1.继承性 2.层叠行(选择器的一种选择能力,谁的权重大就选谁) A.选不中,走继承性,(font系列.color.text系列)权重是0 a)有多个父级都设置了这样的样式 走就 ...
- C# 注册机功能开发,机器码设计
前言 本文将使用一个NuGet公开的组件技术来实现机器码注册码功能开发,提供了一些简单的API,来方便的实现. 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet ...
- Js/如何操作div下面的span元素或者是img之类的标签元素
$("div[name='MatTypeName']").click(function (e) { $("div[name='MatTypeName']").e ...
- Python全栈之路----函数进阶----装饰器
Python之路,Day4 - Python基础4 (new版) 装饰器 user_status = False #用户登录后改为True def login(func): #传入想调用的函数名 de ...
- 熟悉基本的Linux文件系统命令
修改配置是以后工作中必然经历的,要做好基础工作,两天的学习也说明了在Linux系统中修改配置的重要性,多看多学习. 每周总结学习和经验到网站上,坚持1w个小时,加油! Linux的安装环境 cen ...
- JVM垃圾回收算法解析
JVM垃圾回收算法解析 标记-清除算法 该算法为最基础的算法.它分为标记和清除两个阶段,首先标记出需要回收的对象,在标记结束后,统一回收.该算法存在两个问题:一是效率问题,标记和清除过程效率都不太高, ...
- 集合总结四(LinkedHashMap的实现原理)
一.概述 按照惯例,先看一下源码里的第一段注释: Hash table and linked list implementation of the Map interface, with predic ...