问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

pandas系列之数据分组(一)按照列名分组

发布网友 发布时间:2024-09-26 22:04

我来回答

1个回答

热心网友 时间:2024-10-31 17:06

数据分组就是根据一个或多个键(可以是函数、数组或者df列名)将数据分为若干组,然后对分组后的数据分别进行汇总计算,并将汇总计算后的结果进行合并。被用作汇总计算的函数称为聚合函数。

本文用到的表格内容如下:

先来看一下数据情形

importpandasaspdlife_df=pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')print(life_df)

result:

分类编号名称0水果0苹果1水果1橙子2生活用品2牙刷3生活用品3冰箱4生活用品4电视机5食物0苹果6食物1橙子7家电3冰箱8家电4电视机9大件3冰箱10大件4电视机11大件5茶几12生活用品7暖手宝宝13小说8红楼梦

数据分组具体的过程如下所示

1 按照一列进行分组life_df=pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')print(life_df.groupby("分类"))

result:

<pandas.core.groupby.generic.DataFrameGroupByobjectat0x000001894A41C708>

从上面的结果可以看出,如果只是传入列名,分组后的结果是一个DataFrameGroupBy对象。这个对象包含着分组以后的若干组数据,但是没有直接显示出来,需要对这些分组数据进行汇总计算以后才会显示出来

life_df=pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')print(life_df.groupby("分类").count())

result:

编号名称分类大件33家电22小说11水果22生活用品44食物22

上面的代码是根据物品分类对所有数据进行了分组,然后对分组以后的数据分别进行计数运算,最后进行合并。

由于对分组后的数据进行了计数运算,因此每一列都会有一个结果。但是如果对分组后的结果做一些数值运算,这个时候只有数据类型是数值(int、float)的列才会参与运算

importpandasaspdlife_df=pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')print(life_df.groupby("分类").sum())

result:

编号分类大件12家电7小说8水果1生活用品16食物1

我们把这种对分组后的数据进行汇总运算的操作称为聚合,使用的函数称为聚合函数。比如前面系列文章提高的非空值计数、sum求和、最大值最小值、均值、中位数、众数、方差、标准差和分位数这些。都属于聚合函数。

2 按照多列进行分组

多列分组和单列分组差不多,只要将对个列名以列表的形式传递给groupby()即可。

life_df=pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')print(life_df.groupby(["分类","名称"]).count())

result:

编号分类名称大件冰箱1电视机1茶几1家电冰箱1电视机1小说红楼梦1水果橙子1苹果1生活用品冰箱1暖手宝宝1牙刷1电视机1食物橙子1苹果1分类编号名称0水果0苹果1水果1橙子2生活用品2牙刷3生活用品3冰箱4生活用品4电视机5食物0苹果6食物1橙子7家电3冰箱8家电4电视机9大件3冰箱10大件4电视机11大件5茶几12生活用品7暖手宝宝13小说8红楼梦0

result:

分类编号名称0水果0苹果1水果1橙子2生活用品2牙刷3生活用品3冰箱4生活用品4电视机5食物0苹果6食物1橙子7家电3冰箱8家电4电视机9大件3冰箱10大件4电视机11大件5茶几12生活用品7暖手宝宝13小说8红楼梦13 分组和聚合采用不同的列进行

上述1和2这2种方式,无论是一列还是多列,只要直接在分组后的数据上进行汇总计算,就是对所有可计算的列进行计算。有的时候我们不需要对所有列进行计算,这个时候可以指定要计算的列(无论是单列还是多列)

分类编号名称0水果0苹果1水果1橙子2生活用品2牙刷3生活用品3冰箱4生活用品4电视机5食物0苹果6食物1橙子7家电3冰箱8家电4电视机9大件3冰箱10大件4电视机11大件5茶几12生活用品7暖手宝宝13小说8红楼梦2

result:

分类编号名称0水果0苹果1水果1橙子2生活用品2牙刷3生活用品3冰箱4生活用品4电视机5食物0苹果6食物1橙子7家电3冰箱8家电4电视机9大件3冰箱10大件4电视机11大件5茶几12生活用品7暖手宝宝13小说8红楼梦3

这里就是按照物品分类进行分组,再按照物品名称进行汇总统计

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
缺土的宝宝女孩名字车姓 推荐一些带有成字的女孩名字 江姓婴儿名字大全女孩2024龙宝宝 陌陌的安全等级和财富等级是什么 如何提高陌陌等级? 冰箱旧了是不是很耗电 手机号收不到LINE的手机验证码怎么办 注册line连我账号收不到验证码 日韩服属于哪里 lineplay进入别人家能说话吗 1.6)pandas行、列改名(rename) 求问三国杀手机版(3.0)用边锋帐号登录的下载地址在哪里 正方形物体有哪些生活用品 正方体物体有哪些生活用品 正方体的物体有什么? 谁有边锋三国杀手机单机版,武将全开的,有神将,技能是原版的没改过... 三国杀边锋版本如何下载 中国医改:问题·根源·出路内容简介 出路:财富是条不死的鱼内容简介 思路•退路•出路内容简介 思路·退路·出路内容简介 天津市是属于哪个省天津市简单介绍 出路简介 步步高vivo v2中的天气设置地域名(地理位置,比如淅川)之后怎么不能删除... 请问步步高vivo v2手机如何把桌面应用软件的图标移动到社交汇、音乐汇... 出路内容简介 出路的图书简介 步步高 vivo V2规格参数 能提供安全生产管理台帐,记录,档案格式样本、电子版样本?最好的... 某显示器的分辨率为1024*768,像素位宽为16bit,带宽为105MB, 则显示器... 六年级作文写一首热爱生活的诗歌 数据分析从零开始实战,Pandas读取HTML页面+数据处理解析 小爱同学语音引擎怎么使用 我家的狗一吃东西就吐没精神也不吃东西求大家救救它!!! ...给它喂饭也吃的很好,但是今天早上又突然吐白色透明泡沫 狗狗又拉又吐怎么办?急。!!!十万火急。!!! 我家的狗狗究竟是肠炎还是细小啊 我家的是泰迪犬,第一天下午拉稀,晚上就不进食了,精神状态还可以,第二天... ...又吐又拉稀(具体看问题补充)求助!!该怎么办!!着急啊!!心疼我家狗狗T... 速腾2.0左后门板灯常亮什么原因 全新速腾后门改门灯用破线吗? 马继援战争经历 魔法蜗牛红参蜗牛怎么样?魔法蜗牛适合多大年龄 解放战争•西北战场(17):钟松败了 韩国的伊思蜗牛护肤系列适合女性多大年龄段使用 35岁可以用红参蜗牛霜吗 三星手机怎么合成影集 2013/3/5发售的小米2的系统是什么版本? 三星n9008s怎么把两张照片合成一张 小米2 26号买的话系统会是10.0吗? 什么是人格分裂?表现特征啦,影响啦等等,超级详细的介绍一下,麻烦啦...