|
@@ -23,6 +23,13 @@ features = [
|
|
|
'view次数', # 过去24h曝光次数
|
|
|
'play次数', # 过去24h播放次数
|
|
|
'share次数', # 过去24h分享次数
|
|
|
+ 'platform_return',
|
|
|
+ 'platform_preview',
|
|
|
+ 'platform_preview_total',
|
|
|
+ 'platform_show',
|
|
|
+ 'platform_show_total',
|
|
|
+ 'platform_view',
|
|
|
+ 'platform_view_total',
|
|
|
]
|
|
|
|
|
|
|
|
@@ -102,6 +109,7 @@ def cal_score2(df):
|
|
|
df['share_rate'] = df['share次数'] / (df['view人数'] + 1000)
|
|
|
df['back_rate'] = df['回流人数'] / (df['share次数'] + 100)
|
|
|
df['score'] = df['share_rate'] + 0.01 * df['back_rate']
|
|
|
+ df['platform_return_rate'] = df['platform_return'] / df['回流人数']
|
|
|
df = df.sort_values(by=['score'], ascending=False)
|
|
|
return df
|
|
|
|
|
@@ -128,6 +136,9 @@ def video_rank_h(df, now_date, now_h, rule_key, param):
|
|
|
day_recall_df = df[df['回流人数'] > return_count]
|
|
|
else:
|
|
|
day_recall_df = df
|
|
|
+ platform_return_rate = param.get('platform_return_rate', 0)
|
|
|
+ day_recall_df = day_recall_df[day_recall_df['platform_return_rate'] > platform_return_rate]
|
|
|
+
|
|
|
# videoid重复时,保留分值高
|
|
|
day_recall_df = day_recall_df.sort_values(by=['score'], ascending=False)
|
|
|
day_recall_df = day_recall_df.drop_duplicates(subset=['videoid'], keep='first')
|