python3关于groupby常用函数的讲解 agg函数 apply函数(详细见上一博客)

这里排列几个例子 就一目了然了 

这里是原始的数据

python3关于groupby常用函数的讲解 agg函数 apply函数(详细见上一博客)_第1张图片

import pandas as pd
import numpy as np
#1754884 record,1053282 with coupon_id,9738 coupon. date_received:20160101~20160615,date:20160101~20160630, 539438 users, 8415 merchants  
off_train = pd.read_csv(r'C:\Users\yang\Desktop\kongbaizhi.csv',header=None)  
off_train.columns = ['user_id','merchant_id','coupon_id','discount_rate','distance','date_received','date']  
#2050 coupon_id. date_received:20160701~20160731, 76309 users(76307 in trainset, 35965 in online_trainset), 1559 merchants(1558 in trainset)  

# feature3 = off_train[(off_train.date_received>='20160115')&(off_train.date_received<='20160315')]
# print(feature3)
# a=off_train.date_received[12]
# print(a)
# print(type(a))


# b=off_train.date_received[2]
# print(b)
# print(type(b))

t=off_train.groupby(['user_id','coupon_id'])
print(t)

这里t为一个groupby组 不会输出任何形式的东西,只进行了拆分处理 。这时候为了对数据操作即组合,我们需要用到

agg和apply这两个函数 

t=off_train.groupby(['user_id','coupon_id']).agg(lambda x:':'.join(x))
print(t)

agg相当于对groupby进行纵向操作

再解释下这句代码 加了一个['date_received']

t=off_train.groupby(['user_id','coupon_id'])['date_received'].agg(lambda x:':'.join(x))
print(t)

意思是整体的不要 只针对['date_received']进行操作



而apply函数 自由度更高 可以横向操作 也可以纵向操作 

你可能感兴趣的:(python数据挖掘从零开始)