python3关于groupby函数最简单的介绍和理解⾸先我们先来看下⽹上最经典的解释
即对不同列进⾏在分类,标准是 先拆分 在组合(如果有操作⽐如sum则可以进⾏操作)
什么意思呢 。就是我们读取⽂件不是有很多列吗,如果我按列就⾏分类,那么先把选取列⼀样的挑出来
然后在进⾏操作。具体的看下下⾯⼀个例⼦
这⾥我们的列名省略了 其实是df_lumns = ['user_id','item_id','behavior_type','item_category']
import pandas as pdgroupby是什么函数
import numpy as np
path_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_lumns = ['user_id','item_id','behavior_type','item_category']
finally:
path_df.close()
df_part_1['cumcount'] = df_upby(['user_id', 'behavior_type']).cumcount()#
print(df_part_1)
这⾥我们选取了groupby(['user_id', 'behavior_type']
可能刚开始不懂啥意思 基本意思就是 我⽤这两列进⾏分类 树结构看过吗 这两个列就相当于树的节点 其他的列
通过这个节点再进⾏分⽀。还是不懂?没关系 来个最直⽩的意思 就是所有数据 只要['user_id', 'behavior_type']
这两个取值⼀样 就是⼀个⼩类 。如果这两个取值不⼀样则就不是⼀类 。可能单纯的说搞不懂,我们加了⼀个cumcount辅助理解
上述程序运⾏结果为上⾯所⽰ ,那么我们解释下 什么叫
只要['user_id', 'behavior_type'] 这两个取值⼀样 就是⼀个⼩类
我们看上图0-3⾏ 选取的groupby没有变 即['user_id', 'behavior_type'] 没变 则⼀直计数
⽽3和4(横⾏标签)相⽐'behavior_type' 由1变成4了 则我们刚开始说的 只要有⼀个变就不是⼀类了 所以重新计数
现在懂了吧 最基本的就是可以选取我们需要的列进⾏分类 ⽐如我们统计所有⽤户不同操作类型进⾏了多少次
⾸先我们必须先把同样的⽤户分在⼀起 然后再把相同操作分在⼀起 所以我们选取groupby(['user_id', 'behavior_type']
进⾏分类 ,⽽不是在很⼤的数据中茫茫没有思路
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论