0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用pandas实现execl中的汇总行

科技绿洲 来源:Python数据科学 作者:Python数据科学 2023-11-03 10:34 次阅读

最近小伙伴提出了几个问题,如何用pandas实现execl中的汇总行。

关于这个问题,群里展开了激烈的讨论,最终经过梳理总结出了以下两个解决方法。一种是当做透视时直接使用参数margins,另一种是当无透视时手动造出汇总行。

pivot_table

问题(群成员"浮生如梦"):

我想统计一月到十二月的所有数据应该怎么写呢?

图片

解决方法

  • 用法:sum()pivot_table

如果要对数据按行方向求和,直接使用sum()函数即可,设置参数axis=1(默认是axis=0列方向对列数据求和),然后将横向求和结果赋给一个新的字段。此例中为求和,其他统计方式如mean、max、min等均同理。

# 生成测试数据
df = pd.DataFrame(np.random.randint(10,100,(9,12)),
                  columns=['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'])
# 横向求和
df['total'] = df.sum(axis=1)

图片

此时已得到行方向的求和,如果我们想继续计算列方向求和并显示出来如何操作呢?可以借助pivot_table来实现,设置参数margins=True

pd.pivot_table(df, index=df.index, aggfunc='sum', margins=True)

图片

groupby+concat

问题(群成员"张晶"):

pandas里面如何实现类似excel中的汇总行?

kv = {'Name': {0: 'John', 1: 'Mack', 2: 'Lilei', 3: 'Kevin', 4: 'Alin', 5: 'Bob'},
 'Team': {0: 'A', 1: 'A', 2: 'B', 3: 'B', 4: 'C', 5: 'C'},
 'Jan': {0: 9, 1: 9, 2: 8, 3: 10, 4: 7, 5: 9},
 'Feb': {0: 10, 1: 7, 2: 8, 3: 7, 4: 6, 5: 8},
 'Mar': {0: 8, 1: 9, 2: 7, 3: 8, 4: 8, 5: 7},
 'Apri': {0: 8, 1: 7, 2: 6, 3: 7, 4: 6, 5: 8}}
df = pd.DataFrame(kv)

图片

解决方法

用法:groupbyconcatsumtransform

该方法通过几种用法的组合间接实现了行和列数据汇总。

  • 对列数据的汇总求和比较取巧,使用groupby实现了对整列数据求和,求和sum函数中需设置numeric_only参数,只对数值求和。得到列汇总结果后将其与原数据进行concat纵向拼接。
  • 对行数据求和可以直接使用sum函数,通过axis=1指定横向求和。
# 增加列汇总数据
total = df.groupby(lambda _: '总计').sum(numeric_only=True)
# 与原数据纵向拼接
df_total = pd.concat([df,total]).fillna('/')
# 对原数据数值类型横向求和
df_total['total'] = df_total.sum(numeric_only=True,axis=1)
df_total

图片

如果想要对Team进行分组求和,可以通过transform实现组合求和并添加为一个新的求和列。

# 分组内求和
df_total['team_total'] = df_total.groupby(['Team'])['total'].transform('sum')
df_total

图片

以上是本次分享内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6596

    浏览量

    87959
  • 参数
    +关注

    关注

    11

    文章

    1459

    浏览量

    31694
  • execl
    +关注

    关注

    0

    文章

    2

    浏览量

    2212
收藏 人收藏

    评论

    相关推荐

    请问STM32CubeIDE如何查看代码总行数?

    近期填写资料,需要写当前项目源代码总行数,使用的STM32CubeIDE开发的,想请教一下,这个IDE怎么看代码的总行数?
    发表于 03-28 07:07

    labview如何生成execl报表

    本帖最后由 zhihuizhou 于 2011-11-19 20:24 编辑 请问哪位大侠有关于labview生产execl报表方面的资料呀?
    发表于 11-19 16:11

    怎么使用labview保存测试数据到execl

    大神们:怎么使用labview保存测试数据到execl,每次保存时都是从execl首行覆盖式保存,怎么设置下一行保存?可以设置保存数据字体的颜色吗?
    发表于 12-12 15:58

    Pandas的四种绘图函数

    数据可视化(三):Pandas的绘图函数
    发表于 09-04 09:04

    pandas是什么?

    系列文章目录提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录
    发表于 07-14 07:48

    pandas是什么

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着
    发表于 08-09 07:39

    pandas使用步骤

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结学习内容:学习时间:学习产出:前言一、pandas是什么?二
    发表于 08-10 07:50

    pandas是什么?怎么使用?

    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助
    发表于 12-07 06:37

    labview 读取execl

    初学,今天使用Labview 读取 execl 内的文件并显示数据,在execl内,只有一个sheet,没有问题,增加一栏后,显示只读取了后面一栏,而且execl表格内sheet1 也被删除了,怎么回事?
    发表于 12-17 18:46

    pandas是什么?

    的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库 2.读入数据 总结前言 本文章主要目的是对嵌入式式系统开发是怎么回事,通过易于理解与实现的角度对嵌入式开发进行诠释,以及记录日常工作的心得体会。
    发表于 12-24 08:05

    pandas是什么?

    文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?二、使用步骤1.引入库代码如下(示例):import numpy as npimport
    发表于 01-11 07:53

    pandas是什么?

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着
    发表于 01-12 07:53

    pandas是什么?

    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助
    发表于 01-17 06:52

    Pandas高级操作汇总

      今天给大家分享一篇Pandas高级操作汇总~   在数据分析和数据建模的过程中需要对数据进行清洗和整理等工作,有时需要对数据增删字段。下面为大家介绍Pandas对数据的复杂查询、数据类型转换
    的头像 发表于 06-16 10:27 305次阅读

    如何实现Pandas的DataFrame转换交互式表格

    Pivottablejs是一个通过IPython widgets集成到Python中的JavaScript库,允许用户直接从DataFrame数据创建交互式和灵活的汇总报表。可以进行高效、清晰的数据分析和表示,帮助将数据从Pandas DataFrame转换为易于观察的交
    的头像 发表于 11-21 16:15 502次阅读
    如何<b class='flag-5'>实现</b><b class='flag-5'>Pandas</b>的DataFrame转换交互式表格