pandas 按行聚合 按列聚合 分组添加汇总行

news/2024/10/19 19:40:22/

1.dataframe按行列聚合

对于某个数据,我们经常需要各种聚合操作,比如针对行/列求和,求均值等。下面通过一个例子看在pandas中如何实现。

import pandas as pddef t1():data = {'name': ['a', 'a', 'a', 'b', 'b', 'c', 'c', 'c'],'s1': [1, 5, 4, 2, 4, 3, 6, 7],'s2': [0.1, 0.5, 0.4, 0.2, 0.4, 0.3, 0.6, 0.7]}df = pd.DataFrame(data)df['merge'] = df[['s1', 's2']].sum(axis=1)df.loc['总和'] = df[['s1', 's2', 'merge']].sum()n = df.shape[0]index_array = [i for i in range(n-1)]df.loc['均值'] = df.loc[index_array].mean()df.loc['方差'] = df.loc[index_array].std()print(df)

上面代码实现了如下功能:
1.对于df将s1,s2的值相加,即逐行求和,并将结果命名为merge。
2.对于df,将s1,s2, merge分别按列求和,并且该行索引值为总和。
3.对于求均值求方差,与按列求和同理。
4.注意因为已经添加了一行总和,在后面求均值求方差时候需要将该行排除掉。

总结一下,按行列求和相对比较简单,只需找准指定数据对应位置即可。

2.分组添加汇总行

先对数据分组,然后添加汇总结果行,也是我们常见应用场景,下面看个例子。

def t2():data = {'name': ['a', 'a', 'a', 'b', 'b', 'c', 'c', 'c'],'s1': [1, 5, 4, 2, 4, 3, 6, 7],'s2': [0.1, 0.5, 0.4, 0.2, 0.4, 0.3, 0.6, 0.7]}df = pd.DataFrame(data)aggret = df.groupby('name', as_index=False).agg({'s1': 'sum', 's2': 'sum'})df = pd.concat([df, aggret]).reset_index(drop=True)df.sort_values(by='name', inplace=True)print(df)

上面代码实现的功能是,将数据按name分组,然后对s1,s2进行聚合做求和操作。

操作步骤如下:
1.先根据name做groupby操作,需要注意的点在于,将groupby函数中的as_index参数设为False,这样name将不会作为结果中的行索引。
2.将原有的df与aggret进行拼接,这样就将汇总行数据添加了进来。
3.对所得结果按name排序,这样得到的结果方便查看,汇总行数据在相同key数组分组的最下面一行。

最后得到的结果为:

   name  s1   s2
0     a   1  0.1
1     a   5  0.5
2     a   4  0.4
8     a  10  1.0
3     b   2  0.2
4     b   4  0.4
9     b   6  0.6
5     c   3  0.3
6     c   6  0.6
7     c   7  0.7
10    c  16  1.6

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

相关文章

技术分享——数据安全之数据分类方法小集

背景 2021年6月10日,《中华人民共和国数据安全法》(以下简称“《数安法》”)通过了第十三届全国人民代表大会常务委员会第二十九次会议并予以发布,标志着我国数据安全工作进入到有法可依的新阶段。 本文通过梳理现有的部分法规、…

项目管理中,如何实现有效的项目预算管理?

在《PMBOK指南》第七版中,变化较大的一点是从以成果为导向演变为以价值为导向,其十二项指导原则之一——“聚焦于价值”也阐述了价值是项目的最终成功指标和驱动因素。在这一指导原则下,项目经理就不能只关注在范围、进度、成本三重要素约束下…

数据迁移中的常见问题

目标:之前用kettle对数据进行处理,因为要对数据进行迁移,所以希望将kettle的逻辑全部改成存储过程,对数据进行处理 运行过程中最常见的一个问题出在排序这里 1、ROW_NUMBER() 当满足条件的记录有多条,要对记录进ROW…

大学毕业生自荐信范文

大学毕业生自荐信范文1 尊敬的贵公司领导: 您好! 首先感谢您对我的关注,在我即将走出校门的时候,给我一次宝贵的工作机会。 学习了两年的会计专业相关知识后,已经使得我对会计行业有了深刻的认识。技能要靠经验&#x…

Vue介绍与入门(一)

文章目录 前言一、Vue.js是什么?二、vue入门1. 引入vue.js2. 编写入门的简易代码(实践) 三、vue学习总结(重点) 前言 前端开发三大框架 1、Vue:尤雨溪主导开发 2、React:脸书(Faceb…

坚果j10和当贝f3投影仪哪个好 坚果j10和当贝f3对比哪个性价比高

坚果J10的亮度比当贝F3高,达到了2400ANSI流明;||当贝F3的存储比坚果J10大,达到了4G64G的大存储;||当贝F3支持遥控器找回、魔法同屏等功能,坚果J10不支持。 选坚果j10还是当贝f3投影仪这些点很重要看过你就懂了 http://…

J10:主从同步切换的坑,脑裂

主从切换的坑 主从数据不一致 主从库间的命令是异步进行的(主库在本地执行完命令后,就向客户端返回结果了,如果从库还没执行命令,数据就不一致了) 滞后的原因 主从网络延迟。从库可能接收到了命令,但是…

坚果J10和当贝F3体验分享,智能家用投影仪究竟应该怎么选?

2020年可以说是投影仪行业最为热闹的一年了。人们在家娱乐需求大大提升,各类新品层出不穷,并且智能家用投影仪各品牌纷纷迈入2000ANSI以上的高亮度时代,观赏体验效果大大提升。 不管是今年4月发布的当贝投影F3,还是10月份的坚果J10,都是2020年度两个品牌的主力旗舰机型,在双十…