ppython3 关于agg函数的用法(一般与groupby函数连用)
为了了解agg这个函数 我们先以下数据集作为研究对象 (截图的一部分)
agg:这里一般都与groupby函数作为比较
pandas引入了agg函数,它提供基于列的聚合操作。而groupby可以看做是基于行,或者说index的聚合操作
通过这里介绍我们可以交接 groupby函数是基于行操作的 而agg是基于列操作的
这个说可能太抽象,什么是行操作 什么是列操作呢
最简单的理解就是 基于行操作 我可以进行分类(比如一个班名单 所有180以上的是一组 160-180是一组 低于160是一组)如果实现这个过程 我们是每一行每一行就行查找,查看符合什么条件 然后分组。这就是groupby函数最简单的理解 而我们分好组以后 想得到每一组的平均值咋办 一般我们是着用操作的 选择一个组之后 把他们所有身高都加起来 然后除以该组人数。那么问题来了 不管是身高和还是平均值 我们都是进行列操作的 即我们是从上至下加起来的 而不是从左到右。为了计算简便 我们引入了agg函数。
import pandas as pd
import numpy as nppath_df_part_1 = r'C:\Users\yang\Desktop\ceshi.csv' #时间11.22-11.27的数据path_df = open(path_df_part_1, 'r')
try:df_part_1 = pd.read_csv(path_df, index_col = False, parse_dates = [0])df_part_1.columns = ['user_id','item_id','behavior_type','item_category']
finally:path_df.close()df_part_1['cumcount'] = df_part_1.groupby(['user_id', 'behavior_type']).cumcount()#
df_part_1_u_b_count_in_6 = df_part_1.drop_duplicates(['user_id','behavior_type'], 'last')
#相当于保存的最大的那个计数的 因为 0 1 2 3 4 5 6 这些计数前面都是重复的 保留最后一个即可。drop_duplicate函数括号里面的完全重复才算重复项
#完全重复就代表 user_id 与 behavior_type 完全相同 然后保留last最后u一个项df_part_1_u_b_count_in_6 = pd.get_dummies(df_part_1_u_b_count_in_6['behavior_type']).join(df_part_1_u_b_count_in_6[['user_id','cumcount']])
#把1 2 3 4类型的进行热编码 变成0001 0010 0100 1000类型df_part_1_u_b_count_in_6.rename(columns = {1:'behavior_type_1',2:'behavior_type_2',3:'behavior_type_3',4:'behavior_type_4'}, inplace=True)
#只是对热编码的columns重新命名 便于以后取值 因为分成了单独的列了print(df_part_1)
df_part_1_u_b_count_in_6['u_b1_count_in_6'] = df_part_1_u_b_count_in_6['behavior_type_1'] * (df_part_1_u_b_count_in_6['cumcount']+1)#统计用户点击操作总数
df_part_1_u_b_count_in_6['u_b2_count_in_6'] = df_part_1_u_b_count_in_6['behavior_type_2'] * (df_part_1_u_b_count_in_6['cumcount']+1)#统计用户收藏操作总数
df_part_1_u_b_count_in_6['u_b3_count_in_6'] = df_part_1_u_b_count_in_6['behavior_type_3'] * (df_part_1_u_b_count_in_6['cumcount']+1)#统计用户购物车操作总数
df_part_1_u_b_count_in_6['u_b4_count_in_6'] = df_part_1_u_b_count_in_6['behavior_type_4'] * (df_part_1_u_b_count_in_6['cumcount']+1)#统计用户购买操作总数
★print(df_part_1_u_b_count_in_6)
df_part_1_u_b_count_in_6 = df_part_1_u_b_count_in_6.groupby('user_id').agg({'u_b1_count_in_6': np.sum,'u_b2_count_in_6': np.sum,'u_b3_count_in_6': np.sum,'u_b4_count_in_6': np.sum})★ print(df_part_1_u_b_count_in_6)
为了更容易看懂程序 我们做了标记 第一个五角星输出的是刚开始我们给的数据图
第二个五角星输出如下
通过对比可以发现 以前 0 1 2 3数据的值 都统计在一个数据里面了
ppython3 关于agg函数的用法(一般与groupby函数连用)相关推荐
- python中trunc函数_Oracle trunc()函数的用法及四舍五入 round函数
--Oracle trunc()函数的用法 /**************日期********************/ 1.select trunc(sysdate) from dual --20 ...
- python中divmod函数的用法_Python中divmod函数的用法
Python中divmod函数的用法,语言,余数,是一种,面向对象,函数 Python中divmod函数的用法 Python中divmod函数的用法 在Python中divmod函数的作用是把除数和余 ...
- filter函数的用法_动态数组函数系列5| 筛选函数FILTER,单条件多条件动态筛选
FILTER函数是筛选函数,就是在源数据中按照我们的条件筛选出我们想要的数据.除了常规的数据筛选,还可以进行多条件的"且"或者"或"的筛选. 下面我们来看看这个 ...
- python中sorted函数的用法_Python3 中sorted() 函数的用法
描述 sorted() 函数对所有可迭代的对象进行排序操作. 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象. key – ...
- python中pop函数的用法_python中pop()函数怎么用
python中pop()函数的用法:pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回从列表中移除的元素对象.函数语法:[list.pop(ojb=list[-1])]. pop() ...
- 计算机函数公式用法教程average,average函数怎么用?Excel下average函数的使用方法...
AVERAGE函数,意思是EXCEL表格中的计算平均值函数.关于sum函数的用法有很多,有不少朋友问到AVERAGE函数的用法.那么,在sum函数里的AVERAGE函数应该怎么运用呢?今天小编就教大家 ...
- function函数的用法c语言,function函数
function()函数的具体用法 请大侠具体告知,高分赠送. function()函数语法: function 函数名(参数1 [参数2]) { 函数体 return 返回值 } 举例: javas ...
- 四舍五入oracle,Oracle trunc()函数的用法及四舍五入 round函数
--Oracle trunc()函数的用法 /**************日期********************/ 1.select trunc(sysdate) from dual --201 ...
- stod/stoi 函数基本用法及与atof函数的对比
stoi函数: 将string类型转换成int类型的函数 stod函数: 将string类型转换成double类型的函数 atof函数: 将string类型转换成double类型的函数 stoi - ...
- python中set()函数的用法,python中set()函数简介及实例解析
python中set()函数简介及实例解析 set函数也是python内置函数的其中一个,属于比较基础的函数.其具体介绍和使用方法,下面进行介绍. set() 函数创建一个无序不重复元素集,可进行关系 ...
最新文章
- 史上最萌的统计学入门书,快来看看长啥样
- 第七周实践项目2.3 顺序环形队列
- java 正则表达式提取价格
- Github标星59.7k:用动画的形式呈现解LeetCode题目的思路
- ubuntu中snap包管理器的安装、更新删除与简单使用
- python基础语法-异常处理
- 启动postgres
- Spark记录-Scala数据类型
- linux gpt分区看不到,Linux无法看到我的任何分区 – 备份GPT表不在磁盘的末尾
- python爬取京东商品信息代码_Python利用Xpath选择器爬取京东网商品信息
- linux 7 network fail,CentOs7 网卡出现问题Job for network.service failed
- |ViaVoice(IBM语音识别输入系统)下载v9.1官方版 - 欧普软件下载
- esp分区创建 linux_Elementary OS - 号称最漂亮的 Linux 发行版
- 篇章级关系抽取(Doc-RE)论文列表整理
- 微信小程序云开发教程-分页查询
- 全球最快!湖南大学天河超算存储系统!
- 微信小程序生成携带参数的小程序码
- Vue3零基础学习指南之Vue基础(1)— 模板语法与指令
- 这341句话,这么美,那么伤。
- 西安工业大学计算机学院团委,西安工业大学计算机学院人工智能与仿真研究所...
热门文章
- Ext入门的第一个程序(1)
- 使用腾讯云clb实现https转发
- 不可错过的250款独立游戏(珍藏版)
- 逻辑回归与线性回归算法梳理
- 关于NFT房地产:2022年你所需要知道的一切
- python 函数参数(必选参数、默认参数、可选参数、关键字参数)
- 英语老师教计算机,英语教案-小学计算机老师教案?
- 通过5个简单的步骤每天回收5个小时14
- c语言中各类型所占字节
- char *s=“\ta\017bc“所占字节数