Python groupby函数图文详解
作者:Vergil_Zsh 发布时间:2021-10-01 06:17:09
标签:groupby,函数,python
一、分组原理
核心:
1、不论分组键是数组、列表、字典、Series、函数,只要其与待分组变量的轴长度一致都可以传入groupby进行分组。
2、默认axis=0按行分组,可指定axis=1对列分组。
groupby()语法格式
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, group_keys=True, squeeze=False, observed=False, **kwargs)
groupby原理
groupby就是按XX分组,比如将一个数据集按A进行分组,效果如下
使用groupby实现功能
import numpy as np
import pandas as pd
data = pd.DataFrame({
'name': ['Tom', 'Kaggle', 'Litter', 'Sam', 'Sam', 'Sam'],
'race': ['B', 'C', 'D', 'E', 'B', 'C'],
'age': [37.0, 61.0, 56.0, 87.0, 58.0, 34.0],
'signs_of_mental_illness': [True, True, False, False, False, False]
})
data.groupby('race')
返回结果如上 得到一个叫DataFrameGroupBy的东西,pandas不能直接显示出来 可以调用list显示出来
groupby()的配合函数 函数 适用场景备注.mean()均值.count()计数.min()最小值.mean().unstack()求均值,聚合表的层次索引不堆叠.size()计算分组大小GroupBy的size方法,将返回一个含有分组大小的Series.apply().agg()
这里演示.mean()和.count()
# mean()
data.groupby('name')['age'].mean()
# count()
data.groupby('name')['age'].count()
data.groupby('age').count()
也可以根据单键多列进行聚合
# 单键多列聚合
data.groupby('name')[['race','age',]].count()
.agg操作 可以取多个函数进行选择 有时候我们既需要平均值,有需要计数(也可是取一个)
agg为列表
print(data.groupby('name')['age'].agg(['mean']))
print(data.groupby('name')['age'].agg(['mean','count']))
也可以传入字典,对组内不同列采取不同的操作
print(data.groupby('race').agg({'age': np.median, 'signs_of_mental_illness': np.mean}))
.apply()
可以使用我们自己所创建的函数
print('apply之前')
grouped = data.groupby('name')
for name, group in grouped:
print(name)
print(group)
print('\n')
print('apply之后')
print(data.groupby('name').apply(lambda x: x.head(2)))
简单操作基本介绍完成
有时候需要将聚合的另一列放到一起 并且取消键的重复值 这个时候可以这样做
上面是构建的数据,需要对订购时间进行处理,这里我们是将月份+天数/30,然后对ID列进行去重,并将后面Time列计算的结果放到一起
import numpy as np
import pandas as pd
data = pd.read_excel('订购时间预测2.xlsx')
def cut_m_d(x):
return round(x.month + x.day / 30, 2)
data['m_d'] = data['Time'].apply(cut_m_d)
grouped = data.groupby('ID')
# 这一步是去重(ID),不去重会出现错误
result = grouped['m_d'].unique()
result2 = result.reset_index()
print(result2)
来源:https://blog.csdn.net/KIKI_ZSH/article/details/118722642


猜你喜欢
- 前言我们在开发应用是经常会需要用到一些数据的存储,存储的方式有多种,使用数据库是一种比较受大家欢迎的方式。但是对于一些小型的应用,如一些移动
- python对函数库的引用方式1、import <库名> 例如:import turtle 如果需要使用库函数中的函数,需要使用
- Python开发环境配置好了,但发现自带的代码编辑器貌似用着有点不大习惯啊,所以咱们就找一个“好用的”代码编辑器吧,网上搜了一下资料,Pyt
- 本文实例讲述了php计算两个整数的最大公约数常用算法。分享给大家供大家参考。具体如下:<?php//计时,返回秒function&nb
- Python 编程语言已经成为 IT 中使用的最流行的语言之一。成功的一个原因是它可以用来解决各种问题。从网站开发到数据科学、机器学习到任务
- Python的环境变量环境变量说明PYTHONSTARTUP在交互式启动时执行的文件(无默认值)PYTHONPATH‘:' - 以默
- 本文实例为大家分享了Python OpenCV实现视频分帧的具体代码,供大家参考,具体内容如下# coding=utf-8import os
- asp使用session来防止表单多次被提交的方法。formtest.asp' 表单文件<%Randomize&nb
- 一、字典转dataFrame1、字典转dataFrame比较简单,直接给出示例:import pandas as pddic = {'
- 本文总结了ASP初学者常犯的几个错误,希望对asp学习者有所帮助!1.记录集关闭之前再次打开:-----------------------
- import Exception# except 在捕获错误异常的时候 是要根据具体的错误类型来捕获的# 用一个块 可以捕获多个不同类型的异
- 本文实例讲述了Python实现比较两个文件夹中代码变化的方法。分享给大家供大家参考。具体如下:这里将修改代码后的目录与原始目录做对比,罗列出
- 目录前言项目设计后端前端运行项目Q&A前言在前面的Api开发中,我们使用FastApi已经可以很好的实现。但是实际使用中,我们通常建
- 环境配置Django版本1.11python版本3.6.2前言在编写Django网站的时候,在涉及模板方面,一些简单的例子都没有问题,但这些
- IE(internet explorer)公司:微软(MicroSoft)布局引擎:Trident(也做MSHTML)注:解析渲染
- 本文实例讲述了Python实现的大数据分析操作系统日志功能。分享给大家供大家参考,具体如下:一 代码1、大文件切分import osimpo
- (1)标准类型操作符(所有的集合类型)成员关系 (in, not in) &nbs
- 1.什么是解构?ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。它在语法上比ES5所提供的更加简洁、紧凑、清晰。
- 前言之前提交的github copilot技术预览版申请,今天收到准入邮件,于是安上试一试这个准备把我送去电子厂上班的copy a lot
- 一、用户管理在mysql库里有个user表可以查看已经创建的用户1.创建MySQL用户注意:MySQL中不能单纯通过用户名来说明用户,必须要