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. 厨娘ui设计文档

    厨娘ui设计文档 一.概述 中国的饮食文化从古到今源远流长.在生活日益丰富的今天,人们对饮食的要求不仅仅是温饱,更讲究健康和美味.近年来,饮食甚至成为娱乐的一部分,关于吃的流行用语层出不穷,可见在当今 ...

  2. tar 命令 简易使用方法

    创建压缩文件方法 tar zcf 压缩包存放位置 压缩那个目录/内容 (压缩) 例:在/data目录下压缩/etc/目录,并创建名称为etc.tar.gz [root@web01 /]# tar zc ...

  3. javascript 跨域请求详细分析(终极跨域解决办法)

    自从我接触前端以来,接手的项目里面很大部分都是前后端分离的,后端只提供接口,前端根据后端接口渲染出实际页面.个人觉得这是一个挺好的模式,前后端各自负责各自的模块,分工明确,而且也给前端更大的发挥空间. ...

  4. echarts.init 使用jq获取初始化对象

    var myChart = echarts.init($('#main')[0]);// 或者var myChart = echarts.init($('#main').get(0));

  5. 剑指Offer 19. 顺时针打印矩阵 (其他)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  6. CentOS版Linux系统上运行ASP.NET应用

    一.安装: 1. 安装Apache Http Server yum install httpd2. 安装Mono yum install mono3. 安装Mono插件,用来处理ASP.NET请求 y ...

  7. 【Linux常用命令】

    1. ps aux | grep nginx 使用场景:是想查看nginx的打印日志,又不知道nginx的日志路径. ps :是查看进程的命令.使用该命令 可以确定有哪些进程正在运行和运行的状态.进程 ...

  8. Ajax之Json对象序列化传参

    前端部分:传入参数 "groupObject" : jsonString //对象序列化传参 var projectGroup = {}; projectGroup["i ...

  9. 软件工程第四次作业 石墨文档IOS

    待分析的产品:石墨文档IOS客户端 作业地址: https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505   第一部分 调研, 评测 1.下载并 ...

  10. CentOS7中使用yum安装Nginx的方法

    最近无意间发现Nginx官方提供了Yum源.因此写个文章记录下. 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添加源: ...