for col in ['platform', 'type1', 'type2', 'hour']:
df_temp = df_trans.pivot_table(
index='user', columns=col, values='amount', aggfunc='sum').reset_index()
df_temp.columns = [c if c == 'user' else 'trans_{}_{}_amount_sum'.format(
col, c) for c in df_temp.columns]
df_feature = df_feature.merge(df_temp, how='left')
for col in ['type1', 'hour']:
df_temp = df_trans.pivot_table(
index='user', columns=col, values='amount', aggfunc='mean').reset_index()
df_temp.columns = [c if c == 'user' else 'trans_{}_{}_amount_mean'.format(
col, c) for c in df_temp.columns]
df_feature = df_feature.merge(df_temp, how='left')
for col in ['type1']:
df_temp = df_trans.pivot_table(
index='user', columns=col, values='amount', aggfunc='max').reset_index()
df_temp.columns = [c if c == 'user' else 'trans_{}_{}_amount_max'.format(
col, c) for c in df_temp.columns]
df_feature = df_feature.merge(df_temp, how='left')
for col in ['type1']:
df_temp = df_trans.pivot_table(
index='user', columns=col, values='amount', aggfunc='min').reset_index()
df_temp.columns = [c if c == 'user' else 'trans_{}_{}_amount_min'.format(
col, c) for c in df_temp.columns]
df_feature = df_feature.merge(df_temp, how='left')