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】的更多相关文章

  1. 【学习】数据处理基础知识(基本功能)【pandas】

    本章介绍pandas的重要功能,只记录一些重点内容 1.重新索引 pandas对象的一个重要方法是reindex,其作用是创建一个适应用新索引的新对象 #重新索引 obj = pd.Series([4 ...

  2. 关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL))

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习 ...

  3. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  4. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  5. Ant学习-001-ant 基础知识及windows环境配置

    一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...

  6. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  7. 学习javascript基础知识系列第三节 - ()()用法

    总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...

  8. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  9. Oracle基础知识汇总一

    Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...

随机推荐

  1. 云硬盘性能测试工具FIO介绍

    一.云硬盘的性能衡量指标 云硬盘的性能指标一般通过以下几个指标进行衡量 IOPS:每秒的读写次数,单位为次(计数).存储设备的底层驱动类型决定了不同的IOPS 总IOPS:每秒执行的I/O操作总次数 ...

  2. windows Jenkins git 配置

    待更新 插件下载地址:http://updates.jenkins-ci.org/download/plugins/ 参考地址:https://blog.csdn.net/zzy1078689276/ ...

  3. wed

    先有一个无后缀的flag 文件 第一次改成 TXT 收索FLAG 得到了一段 flag.txt f返回到第一次修改后缀 改成RAR 打开RAR 发现一个 flag.txt 的文件 打开,即得到 fla ...

  4. guava-retrying 源码解析(时间限制策略)

    一.时间限制策略相关接口和类 什么是时间限制策略呢?是指在一个时间限制内,包装任何一种重试(尝试)规则,如果超过该限制,那么这个尝试规则可能会被中断,并抛出UncheckedTimeoutExcept ...

  5. 使用element-ui 遇到的问题

    Pagination 分页 在使用分页的时候,每次切换pageSize的时候,需要把current-page置为1 重新加载数据. 但是当current-page !== 1的时候,修改current ...

  6. 【软件安装与环境配置】TX2刷机过程

    前言 使用TX2板子之前需要进行刷机,一般都是按照官网教程的步骤刷机,无奈买不起的宝宝只有TX2核心板,其他外设自己搭建,所以只能重新制作镜像,使用该镜像进行刷机. 系统需求 1.Host Platf ...

  7. Linux源码安装软件

    Linux环境下 源码编译安装软件 ==== 1. 下载,步骤略 ==== 2. 验证,部分官方下载同时提供签名,MD5,sha1,sha256等校验信息. $ gpg --verify gnupg- ...

  8. PythonStudy——Python字典底层实现原理 The underlying implementation principle of Python dictionary

    在Python中,字典是通过散列表或说哈希表实现的.字典也被称为关联数组,还称为哈希数组等.也就是说,字典也是一个数组,但数组的索引是键经过哈希函数处理后得到的散列值.哈希函数的目的是使键均匀地分布在 ...

  9. Spring Cloud(Dalston.SR5)--Zuul 网关-微服务集群

    通过 url 映射的方式来实现 zuul 的转发有局限性,比如每增加一个服务就需要配置一条内容,另外后端的服务如果是动态来提供,就不能采用这种方案来配置了.实际上在实现微服务架构时,服务名与服务实例地 ...

  10. SpringBoot RestFul风格API接口开发

    本文介绍在使用springBoot如何进行Restful Api接口的开发及相关注解已经参数传递如何处理. 一.概念: REST全称是Representational State Transfer,中 ...