这里排列几个例子 就一目了然了
这里是原始的数据

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函数 自由度更高 可以横向操作 也可以纵向操作