天天看點

python的groupby中函數詳解_python3關于groupby常用函數的講解 agg函數 apply函數(詳細見上一部落格)...

這裡排列幾個例子 就一目了然了

這裡是原始的資料

python的groupby中函數詳解_python3關于groupby常用函數的講解 agg函數 apply函數(詳細見上一部落格)...

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