這裡排列幾個例子 就一目了然了
這裡是原始的資料

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函數 自由度更高 可以橫向操作 也可以縱向操作