您的位置: 网站首页> Pandas教程> 当前文章

DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解

老董-我爱我家房产SEO2022-01-17188围观,100赞

  pandas的groupby操作非常常见,通过groupby可以实现分组聚合、过滤等各种运算。如果想全面了解分组聚合的场景,可以参考文章pandas之groupby使用详解。你可否疑惑1个df在groupby后是什么东西呢?网上这种文章不多。本文我们来看1下。

  首先准备1个数据源:

  接下来我们分几个步骤来观察groupby后的结果:

# -*- 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、打印groupby后的变量,看他是什么?他是1个DataFrameGroupBy对象。

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

df = pd.read_excel('test.xlsx')
gb = df.groupby('城市')
print(gb)

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001E5EB3E5400>

  2、如何输出DataFrameGroupBy对象的数据?通过遍历。

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

df = pd.read_excel('test.xlsx')
gb = df.groupby('城市')
for name,df_son in gb:
    print('组名:',name)
    print(df_son)

组名: 北京
      关键词  城市  区域  二手房房源  租房房源
0  八一农机学校  北京  北部      4     0
1    文慧北园  北京  北部     18    13
2   和平里一区  北京  北部     14    15
组名: 杭州
       关键词  城市  区域  二手房房源  租房房源
3  教工路131号  杭州  东部      4     9
4  星星港湾琴海居  杭州  东部      1     2
5   文二路98号  杭州  东部      2     0
6      龙悦湾  杭州  东部      2     0
7     意盛花苑  杭州  东部     24     5

  3、得到分组个数、分组大小、组名对应索引等信息

# -*- coding:utf-8 -*-
df = pd.read_excel('test.xlsx')
gb = df.groupby('城市')
print(gb.ngroups) # 组个数
print('===========')
print(gb.groups) # 组名及组的索引
print('-----------')
print(gb.size())
2
===========
{'北京': [0, 1, 2], '杭州': [3, 4, 5, 6, 7]}
-----------
城市
北京    3
杭州    5
dtype: int64

  5、根据组名取出对应的组数据

# -*- coding:utf-8 -*-
df = pd.read_excel('test.xlsx')
gb = df.groupby('城市')
print(gb.get_group('北京'))
      关键词  城市  区域  二手房房源  租房房源
0  八一农机学校  北京  北部      4     0
1    文慧北园  北京  北部     18    13
2   和平里一区  北京  北部     14    15

  6、查看DataFrameGroupBy对象身上的属性和方法

# -*- coding:utf-8 -*-
df = pd.read_excel('test.xlsx')
gb = df.groupby('城市')
print(dir(gb))
结果太多不打印

很赞哦!

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

文章评论

    DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200