Pandas中的聚合函数,及空值计算(与numpy adarray对比)

news/2024/9/20 13:48:52/

目录

常用聚合函数

pandas%E4%B8%AD%E8%81%9A%E5%90%88%E5%87%BD%E6%95%B0%E7%9A%84%E5%A4%84%E7%90%86%E6%96%B9%E5%BC%8F-toc" style="margin-left:40px;">pandas中聚合函数的处理方式

Series对象使用聚合函数

DataFrame对象使用聚合函数

Pandas中聚合函数对空值的处理,及与numpy ndarray进行对比


常用聚合函数

FunctionDescription备注
countNumber of non-NA observations个数
sumSum of values求和
meanMean of values均值
madMean absolute deviation绝对值均值
medianArithmetic median of values中位数
minMinimum最小值
maxMaximum最大值
modeMode众数
absAbsolute Value绝对值
prodProduct of values乘积
stdBessel-corrected sample standard deviation标准差
varUnbiased variance方差
quantileSample quantile (value at %)分位数
cumsumCumulative sum累和
cumprodCumulative product累积

pandas%E4%B8%AD%E8%81%9A%E5%90%88%E5%87%BD%E6%95%B0%E7%9A%84%E5%A4%84%E7%90%86%E6%96%B9%E5%BC%8F">pandas中聚合函数的处理方式

Series对象使用聚合函数

由于Series对象为一维数据,所以在使用聚合函数的时候不需要考虑聚合函数应用的维度,比如在sum()函数的应用如下

python">import numpy as np
import pandas as pdnp.random.seed(0)data1 = pd.Series(data = [1,2,3], index = ['a', 'b', 'c'])
print(data1)
print(data1.sum())
# a    1
# b    2
# c    3
# dtype: int64
# 6

可以看到这里的聚合函数sum()的应用范围为整个Series中的所有元素

DataFrame对象使用聚合函数

DataFrame中使用聚合函数的话会默认应用于每一列的数据,也就是针对列数据进行聚合操作,如果需要对整个二维表进行聚合,则需要调用两次聚合函数,并且聚合函数也可以根据指定axis参数来设置是在列维度上进行聚合还是在行维度进行聚合

python">import numpy as np
import pandas as pdnp.random.seed(0)data = pd.DataFrame(np.random.randint(0,10,(3,4)),index=list('abc'),columns=list('ABCD'))
print(data)
print(data.sum())
print(data.sum(axis = 1))
print(data.sum().sum())#    A  B  C  D
# a  5  0  3  3
# b  7  9  3  5
# c  2  4  7  6
# A    14
# B    13
# C    13
# D    14
# dtype: int64
# a    11
# b    24
# c    19
# dtype: int64
# 54

可以看到默认进行列数据的聚合,也就是沿行方向,axis默认为0

Pandas中聚合函数对空值的处理,及与numpy ndarray进行对比

pandas在聚合函数中如果遇到元素为空值则会自动忽略,但是在ndarray中,任何数值与空值进行运算,结果都为空值

python">import numpy as np
import pandas as pdnp.random.seed(0)data = pd.DataFrame(np.random.randint(0,10,(3,4)),index=list('abc'),columns=list('ABCD'))
data.iloc[1,1] = np.nan
print(data)
print(data.sum())
print(data.sum(axis = 1))
print(data.sum().sum())print(data.values.sum())#    A    B  C  D
# a  5  0.0  3  3
# b  7  NaN  3  5
# c  2  4.0  7  6
# A    14.0
# B     4.0
# C    13.0
# D    14.0
# dtype: float64
# a    11.0
# b    15.0
# c    19.0
# dtype: float64
# 45.0
# nan

可以看到在最后使用data.values()取出ndarray形式的数据后,再进行sum()聚合运算后,由于[1,1]位置的空值,得到的结果也为空值


http://www.ppmy.cn/news/1528004.html

相关文章

【学术会议征稿】2024年先进控制系统与自动化技术国际学术会议(ACSAT 2024)

2024年先进控制系统与自动化技术国际学术会议(ACSAT 2024) 2024 International Conference on Advanced Control Systems and Automation Technologies 2024年先进控制系统与自动化技术国际学术会议(ACSAT 2024)将于2024年11月15…

微信支付开发-支付工厂AppApi产品代码

一、JSAPI支付产品、APP支付产品、小程序支付产品流程图 二、工厂父类抽象类代码开发 <?php /*** 微信父类抽象类* User: 龙哥三年风水* Date: 2024/9/19* Time: 11:33*/ namespace Payment\WechatPay; abstract class WechatPaymentHandle {/*** 下单* User: 龙哥三年风水…

如何查看电脑什么时候被人动过及看过的文件?

一、查看Windows事件查看器 Windows系统具有强大的日志记录功能&#xff0c;通过“事件查看器”可以查看电脑的使用记录。具体步骤如下&#xff1a; 按下Win R组合键打开运行窗口&#xff0c;输入eventvwr.msc命令并回车&#xff0c;打开事件查看器。 在事件查看器中&#x…

2.计算机网络基础

2. 计算机网络基础 (1) 计算机网络的定义 计算机网络是指将地理位置不同、具有独立功能的多个计算机系统通过通信线路和设备连接起来,以功能完善的网络软件实现网络中资源共享的系统。最简单的定义是:计算机网络是一些互相连接的、自治的计算机系统的集合。最庞大的计算机网…

Kafka基础概念

1.kafka概念 Producer&#xff1a;生产消息实例 Broker&#xff1a;管理和存储消息服务端服务器 Consumer&#xff1a;消费消息的实例 Record&#xff1a;kafka系统中的消息 2.kafka概念-主题 topic&#xff1a;主题&#xff0c;消息的类别 主要用于区别一个broker&#…

DAY11:学习作业

p 和 "hello,world"存储在内存哪个区域&#xff1f;( ) int main(){char *p "hello,world";return 0; } 答案&#xff1a;栈区 分析&#xff1a;内存分为内核、栈区、共享映射区、堆区、静态区全局区&#xff0c;内核是放命令行参数得&#xff0c;栈区是…

Linux操作系统 进程(3)

接上文 Linux进程优先级之后&#xff0c;我们了解到僵尸进程与孤儿进程的形成原因&#xff0c;既然是因为父进程没有接收子进程的退出状态导致的&#xff0c;那么我们该如何去获取子进程的退出状态呢&#xff1f;那本篇文章将围绕这个问题来解释进程。 环境 &#xff1a; vsco…

阿里史上最大规模开源发布,超GPT-4o 、Llama-3.1!

今天凌晨&#xff0c;阿里巴巴官宣了史上最大规模的开源发布&#xff0c;推出了基础模型Qwen2.5、专用于编码Qwen2.5-Coder和数学的Qwen2.5-Math。 这三大类模型一共有10多个版本&#xff0c;包括0.5B、1.5B、3B、7B、14B、32B和72B&#xff0c;适用于个人、企业以及移动端、P…