提取需要的信息
根据不同的分区进行IFL打分,这里以科普区为例
sc = df.loc[df['分区']=='科学科普'] so = df.loc[df['分区']=='社科人文'] ma = df.loc[df['分区']=='机械'] tec = df.loc[df['分区']=='野生技术协会'] mi = df.loc[df['分区']=='星海'] # 一般发布军事内容 car = df.loc[df['分区']=='汽车'] sc.info()
关键词构造
F值:首先,先筛选出发布视频大于5的up主,视频播放量在5W以上的视频数少于5,说明可能是有些视频标题取得好播放量才高,而不是视频质量稳定的up主。
# 计算发布视频的次数 count = sc.groupby('author')['date'].count().reset_index() count.columns =['author','times'] # 剔除掉发布视频少于5的up主 com_m = count[count['times']>5] #com_m = pd.merge(count,I,on='author',how='inner') com_m.info()
筛选完只剩下208个up主的视频数在5个以上:
last = sc.groupby('author')['date'].max() late = sc.groupby('author')['date'].min() # 最晚发布日期与最早之间的天数/发布次数,保留整数,用date重新命名列 F =round((last-late).dt.days/sc.groupby('author')['date'].count()).reset_index() F.columns =['author', 'F'] F = pd.merge(com_m, F,on='author', how='inner') F.describe()
通过describe()方法发现,最晚发布日期与最早发布日期为0的现象,猜测是在同一天内发布了大量的视频。
# 查找的一天内发布视频数大于5的人 F.loc[F['F'].idxmin()]
其视频皆为转载,将其剔除统计范围内。
F = F.loc[F['F']>0] F.describe()
I值
# 构建I值 danmu = sc.groupby('author')['danmu'].sum() replay = sc.groupby('author')['replay'].sum() view = sc.groupby('author')['view'].sum() count = sc.groupby('author')['date'].count() I =round((danmu+replay)/view/count*100,2).reset_index() # I.columns=['author','I'] F_I = pd.merge(F,I,on='author',how='inner') F_I.head()
L值
# 计算出点赞率计算出所有视频的点赞率 sc['L'] =(sc['likes']+sc['coins']*2+sc['favorite']*3)/sc['view']*100 sc.head()
# 构建L值 L =(sc.groupby('author')['L'].sum()/sc.groupby('author')['date'].count()).reset_index() L.columns =['author', 'L'] IFL = pd.merge(F_I, L, on='author',how='inner') IFL = IFL[['author', 'I','F','L']] IFL.head()
维度打分
维度确认的核心是分值确定,按照设定的标准,我们给每个消费者的I/F/L值打分,分值的大小取决于我们的偏好,即我们越喜欢的行为,打的分数就越高:
- I值,I代表了up主视频的平均评论率,这个值越大,就说明其视频越能使用户有话题,当I值越大时,分值越大。
- F值表示视频的平均发布周期,我们当然想要经常看到,所以这个值越大时,分值越小。
- L值表示发布视频的平均点赞率,S值越大时,质量越稳定,分值也就越大。I/S值根据四分位数打分,F值根据更新周期打分。
IFL.describe()
I值打分:
L值打分:
F值根据发布周期打分: