为了了解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函数连用)相关推荐

  1. python中trunc函数_Oracle trunc()函数的用法及四舍五入 round函数

    --Oracle trunc()函数的用法 /**************日期********************/ 1.select trunc(sysdate) from dual  --20 ...

  2. python中divmod函数的用法_Python中divmod函数的用法

    Python中divmod函数的用法,语言,余数,是一种,面向对象,函数 Python中divmod函数的用法 Python中divmod函数的用法 在Python中divmod函数的作用是把除数和余 ...

  3. filter函数的用法_动态数组函数系列5| 筛选函数FILTER,单条件多条件动态筛选

    FILTER函数是筛选函数,就是在源数据中按照我们的条件筛选出我们想要的数据.除了常规的数据筛选,还可以进行多条件的"且"或者"或"的筛选. 下面我们来看看这个 ...

  4. python中sorted函数的用法_Python3 中sorted() 函数的用法

    描述 sorted() 函数对所有可迭代的对象进行排序操作. 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象. key – ...

  5. python中pop函数的用法_python中pop()函数怎么用

    python中pop()函数的用法:pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回从列表中移除的元素对象.函数语法:[list.pop(ojb=list[-1])]. pop() ...

  6. 计算机函数公式用法教程average,average函数怎么用?Excel下average函数的使用方法...

    AVERAGE函数,意思是EXCEL表格中的计算平均值函数.关于sum函数的用法有很多,有不少朋友问到AVERAGE函数的用法.那么,在sum函数里的AVERAGE函数应该怎么运用呢?今天小编就教大家 ...

  7. function函数的用法c语言,function函数

    function()函数的具体用法 请大侠具体告知,高分赠送. function()函数语法: function 函数名(参数1 [参数2]) { 函数体 return 返回值 } 举例: javas ...

  8. 四舍五入oracle,Oracle trunc()函数的用法及四舍五入 round函数

    --Oracle trunc()函数的用法 /**************日期********************/ 1.select trunc(sysdate) from dual --201 ...

  9. stod/stoi 函数基本用法及与atof函数的对比

    stoi函数: 将string类型转换成int类型的函数 stod函数: 将string类型转换成double类型的函数 atof函数: 将string类型转换成double类型的函数 stoi - ...

  10. python中set()函数的用法,python中set()函数简介及实例解析

    python中set()函数简介及实例解析 set函数也是python内置函数的其中一个,属于比较基础的函数.其具体介绍和使用方法,下面进行介绍. set() 函数创建一个无序不重复元素集,可进行关系 ...

最新文章

  1. 史上最萌的统计学入门书,快来看看长啥样
  2. 第七周实践项目2.3 顺序环形队列
  3. java 正则表达式提取价格
  4. Github标星59.7k:用动画的形式呈现解LeetCode题目的思路
  5. ubuntu中snap包管理器的安装、更新删除与简单使用
  6. python基础语法-异常处理
  7. 启动postgres
  8. Spark记录-Scala数据类型
  9. linux gpt分区看不到,Linux无法看到我的任何分区 – 备份GPT表不在磁盘的末尾
  10. python爬取京东商品信息代码_Python利用Xpath选择器爬取京东网商品信息
  11. linux 7 network fail,CentOs7 网卡出现问题Job for network.service failed
  12. |ViaVoice(IBM语音识别输入系统)下载v9.1官方版 - 欧普软件下载
  13. esp分区创建 linux_Elementary OS - 号称最漂亮的 Linux 发行版
  14. 篇章级关系抽取(Doc-RE)论文列表整理
  15. 微信小程序云开发教程-分页查询
  16. 全球最快!湖南大学天河超算存储系统!
  17. 微信小程序生成携带参数的小程序码
  18. Vue3零基础学习指南之Vue基础(1)— 模板语法与指令
  19. 这341句话,这么美,那么伤。
  20. 西安工业大学计算机学院团委,西安工业大学计算机学院人工智能与仿真研究所...

热门文章

  1. Ext入门的第一个程序(1)
  2. 使用腾讯云clb实现https转发
  3. 不可错过的250款独立游戏(珍藏版)
  4. 逻辑回归与线性回归算法梳理
  5. 关于NFT房地产:2022年你所需要知道的一切
  6. python 函数参数(必选参数、默认参数、可选参数、关键字参数)
  7. 英语老师教计算机,英语教案-小学计算机老师教案?
  8. 通过5个简单的步骤每天回收5个小时14
  9. c语言中各类型所占字节
  10. char *s=“\ta\017bc“所占字节数