def get_accumulate_action_feat(start_time, end_time,action_data):
actions=action_data[(action_data['time']>=start_time)&(action_data['time']<=end_time)]
action_data['time'] = pd.to_datetime(action_data['time'],format='%Y-%m-%d %H:%M:%S')
df = pd.get_dummies(actions['type'], prefix='action')
actions = pd.concat([actions, df], axis=1) # type: pd.DataFrame
#?????????
actions['weights'] = actions['time'].map(lambda x: pd.to_timedelta(end_time-x))
#actions['weights'] = time.strptime(end_date, '%Y-%m-%d') - actions['datetime']
actions['weights'] = actions['weights'].map(lambda x: math.exp(-x.days))
print actions.head(10)
actions['action_1'] = actions['action_1'] * actions['weights']
actions['action_2'] = actions['action_2'] * actions['weights']
actions['action_3'] = actions['action_3'] * actions['weights']
actions['action_4'] = actions['action_4'] * actions['weights']
actions['action_5'] = actions['action_5'] * actions['weights']
actions['action_6'] = actions['action_6'] * actions['weights']
del actions['model_id']
del actions['time']
del actions['weights']
del actions['cate']
del actions['brand']
actions = actions.groupby(['user_id', 'sku_id'], as_index=False).sum()
actions.fillna(0,inplace=True)
actions['action_1256']=actions['action_1']+actions['action_2']+actions['action_5']+actions['action_6']
actions['action_1256_d_4']=actions['action_4']/actions['action_1256']
del actions['type']
return actions
评论列表
文章目录