惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
有赞技术团队
有赞技术团队
量子位
N
Netflix TechBlog - Medium
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
V
V2EX
IT之家
IT之家
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 pandas的groupby单列多列分组聚合运算-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科 多款视频制作工具(免费)分享及素材推荐-互联网IT百科
pandas中groupby的分组原理-互联网IT百科
2022-01-13 · via 老董笔记

  对数据分组需要明确数据源及分组条件,分组完毕后才能对每个组进行针对性操作。在pandas中groupby函数就是对数据进行分组的。如果想全面了解分组聚合的场景,可以参考文章pandas之groupby使用详解。本文介绍groupby的分组原理。

  我们先看1个源数据的长相:

# -*- coding:utf-8 -*-
import pandas as pd

df = pd.read_excel('test.xlsx')
print(df)
      关键词  城市  区域  二手房房源  租房房源
0    贡院6号  北京  北部      4     0
1     观澳园  北京  北部     18    13
2   天鹅湾南区  北京  北部     14    15
3    木材新村  杭州  东部      4     9
4    万寿亭街  杭州  东部      1     2
5  瓶窑镇凤溪路  杭州  东部      2     0
6     孝子坊  杭州  东部      2     0
7     永和坊  杭州  东部     24     5

  1、按照单列分组

# -*- coding:utf-8 -*-
import pandas as pd

df = pd.read_excel('test.xlsx')
gb = df.groupby(['城市'])
print(gb) #DataFrameGroupBy对象
df_new = gb.sum() #每组求和
print(df_new)
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001DD707720D0>
    二手房房源  租房房源
城市             
北京     36    28
杭州     33    16

  2、按照多列分组

# -*- coding:utf-8 -*-
import pandas as pd

df = pd.read_excel('test.xlsx')
gb = df.groupby(['城市','区域'])
print(gb) #DataFrameGroupBy对象
df_new = gb.max() # 每组最大值
print(df_new)
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001DD707720D0>
          关键词  二手房房源  租房房源
城市 区域                     
北京 北部    贡院6号     18    15
杭州 东部  瓶窑镇凤溪路     24     9

  上述结果可知:groupby分组后是1个DataFrameGroupBy对象,直接print看不出什么来,其实这个对象是可以进行遍历的,该对象类似于[(组名,子组df),(组名,子组df2)]。这个对象可以调用很多方法来对每1组的数据进行运算。

  进一步的DataFrameGroupBy对象及其方法会在后文介绍,本文的目的只是对groupby的分组有个基础认识。

  3、分组的本质

  一般我们给groupby传入列名(某1列或者多列)分组,本质上他按照所传入的列的唯一值来来分组的,按照值分组是groupby分组的本质,在pandas官方文档也介绍了可以传入ndarray数组,如过传入np数组则按照数组的值来分组。但是需要注意1个问题,数组的长度和df的长度要一致,否则报错 Grouper and axis must be same length,详情看下一篇文章。

# -*- coding:utf-8 -*-
import numpy as np
import pandas as pd

df = pd.read_excel('test.xlsx')
values = np.array(['北京','杭州'] *4)
print(df.groupby(values).mean())
    二手房房源  租房房源
北京   5.25  4.25
杭州  12.00  6.75

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会