2024年最新Python音频面试题,谁才是天朝最厉害的演员?让Python来为你揭晓!,面试题解析已整理成文档什么意思

收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

正文

data[‘演员list’] = data.apply(lambda x: ‘,’.join(x[‘演员’].split(‘yyyyy’)[1].split(‘xxxxx’)[2:]) if pd.notnull(x[‘演员’]) else None,axis=1)

剔除无演员列表的行

data = data.dropna(subset=[“演员list”])

剔除无用字段

data.drop([‘导演/演员/编剧’],axis=1,inplace=True)

data.drop([‘演员’],axis=1,inplace=True)

因为考虑到配音类型的影片是看不到演员本人的,所以需要剔除配音类型影片。再将演员列表从行转置列,使得每行电影名称和演员是一一对应的。由于猫眼电影已经按照演员的出场频率进行排序,所以每部影片取前四名演员,作为影片主演,其中多明星合拍的影片,如《我和我的祖国》就改为取前十名。

拆分演员列表,并转置成一列

data = data.drop(“演员list”, axis=1).join(data[“演员list”].str.split(“,”, expand=True).stack().reset_index(level=1, drop=True).rename(“演员”))

剔除配音演员

data = data[~data[‘演员’].str.contains(‘配音’)]

data[‘演员’] = data.apply(lambda x: x[‘演员’].split(‘饰:’)[0] if ‘饰:’ in x[‘演员’] else x[‘演员’], axis=1)

剔除分割演员名称错误的行

data = data[~data[‘演员’].str.contains(‘uncredited’)]

data = data[~data[‘演员’].str.contains(‘voice’)]

data = data[~data[‘演员’].str.contains(‘Protester’)]

取每部电影的前四名演员,部分影片特殊

data_actor = data[[‘电影id’,‘电影名称’,‘演员’]].drop_duplicates()

data_actor_top4 = data_actor[data_actor[‘电影名称’]!=‘我和我的祖国’].groupby([‘电影id’,‘电影名称’]).head(4)

data_actor_top10 = data_actor[data_actor[‘电影名称’]==‘我和我的祖国’].groupby([‘电影id’,‘电影名称’]).head(10)

data_actor_top4 = pd.concat([data_actor_top4,data_actor_top10])

剔除外国演员

data_actor_top4[‘演员名字长度’] = data_actor_top4.apply(lambda x: len(x[‘演员’]),axis=1)

data_actor_top4 = data_actor_top4[(data_actor_top4[‘演员名字长度’]<=3)].copy()

data_actor_top4.drop(“演员名字长度”,axis = 1,inplace=True)

匹配

data = pd.merge(data,data_actor_top4,how=‘inner’,on=[‘电影id’,‘电影名称’,‘演员’])

然后,拆分每部电影的电影题材类型并进行转置,再汇总每个演员出演过的电影题材,排序后取前三个类型,作为演员的拿手题材。

拆分电影题材

data = data.join(data[“电影题材”].str.split(“,”,expand = True).stack().reset_index(level = 1,drop = True).rename(“题材”))

取每位演员最擅长的电影题材TOP3

data_type_actor = data[[‘电影id’,‘电影名称’,‘演员’,‘题材’]].drop_duplicates().groupby([‘演员’, ‘题材’]).agg({‘电影id’: ‘count’}).reset_index().sort_values([‘演员’,‘电影id’],ascending=False)

data_type_actor = data_type_actor.groupby([‘演员’]).head(3)

data_type_actor = data_type_actor.groupby([‘演员’])[‘题材’].apply(list).reset_index()

data_type_actor[‘题材’] = data_type_actor[‘题材’].apply(lambda x: ‘,’.join(str(i) for i in list(set(x)) if str(i) != ‘nan’))

data_type_actor.rename(columns={‘题材’: ‘演员_拿手题材’}, inplace=True)

data = pd.merge(data,data_type_actor,how=‘left’,on=[‘演员’])

四、数据分析

目前只有“演员总票房”和“影片平均评分”两个字段,可用作描述一个演员综合能力,所以需要衍生一些字段:

电影数量:统计演员主演过的影片数量;

大于10亿票房影片数量:汇总单部影片票房大于10亿的数量;

大于10亿票房影片计分:按照不同票房区间赋予分值,再汇总;

由于部分演员只出演过一部影片,属于单样本,若不剔除,会影响各项指标的数值分布。

##Python学习群 592539176

actor = result[[‘演员’,‘总票房’,‘用户评分’]].drop_duplicates()

衍生字段:平均票房、大于10亿票房影片、大于10亿票房影片计分

actor[‘用户评分’] = actor.apply(lambda x:0 if x[‘用户评分’]==‘暂无评分’ else x[‘用户评分’],axis=1)

actor[‘大于10亿票房影片数量’] = actor.apply(lambda x:1 if x[‘总票房’]>100000 else 0,axis=1)

按照票房赋予分值

def goal(x):

if x[‘总票房’]<=100000:

division_goal = 0

elif x[‘总票房’]<=200000:

division_goal = 1

elif x[‘总票房’] <= 300000:

division_goal = 2

elif x[‘总票房’] <= 400000:

division_goal = 3

elif x[‘总票房’] <= 500000:

division_goal = 4

else:

division_goal = 5

return division_goal

actor[‘大于10亿票房影片计分’] = actor.apply(goal,axis=1)

actor[‘电影数量’] = 1

actor[‘用户评分’] = pd.to_numeric(actor[‘用户评分’])

actor[‘大于10亿票房影片数量’] = pd.to_numeric(actor[‘大于10亿票房影片数量’])

actor[‘大于10亿票房影片计分’] = pd.to_numeric(actor[‘大于10亿票房影片计分’])

汇总

actor2 = actor.groupby([‘演员’]).agg({‘总票房’: ‘sum’,

‘大于10亿票房影片数量’: ‘sum’,

‘大于10亿票房影片计分’: ‘sum’,

‘电影数量’: ‘count’,

‘用户评分’:‘mean’,}).reset_index()

筛选影片数量大于1的行——只有一部影片的演员设为单样本,会影响标准化的结果

actor2 = actor2[actor2[‘电影数量’]>1].reset_index(drop=True)

最后,由于数值字段之间的量纲不同,需要进行标准化处理后才可以进行比较。“演员总票房”的高低是衡量一个演员能力的重要因素,这里笔者将“大于10亿票房影片数量”和“大于10亿票房影片计分”也作为两点重要因素,而“影片平均评分”和“电影数量”作为次要因素,最终标准化处理后的计算公式:

总分=演员总票房+大于10亿票房影片数量+大于10亿票房影片计分+0.5_影片平均评分+0.5_电影数量

这里笔者曾用K-means聚类算法将演员划分为四个集群,通过查看集群的分布情况后发现,划分结果与上述公式计算后的总分排名情况十分相似(比如,总分1-20名划分成集群1,21-50名划分成集群2),所以取消了用聚类算法的方式划分演员档次。

#Python学习群 592539176

#免费领取资料

复制一份副本

actor_copy = actor2.copy()

标准化处理

scaler = StandardScaler()

numeric_features = actor2.dtypes[actor2.dtypes != ‘object’].index

scaler.fit(actor2[numeric_features])

scaled = scaler.transform(actor2[numeric_features])

for i, col in enumerate(numeric_features):

actor2[col] = scaled[:, i]

划分演员档次:权重求和,根据分值排序

result = actor2.apply(lambda x: x[‘总票房’]+x[‘大于10亿票房影片数量’]+x[‘大于10亿票房影片计分’]+0.5x[‘电影数量’]+0.5x[‘用户评分’],axis=1)

# 划分演员档次——方法2:采用聚类算法,自动分成4个组

actor_model = actor2[[‘总票房’, ‘大于10亿票房影片数量’, ‘大于10亿票房影片计分’,‘电影数量’,‘用户评分’]].values

y_pred = KMeans(n_clusters=4, random_state=9).fit_predict(actor_model)

result2 = pd.Series(y_pred)

合并两种结果

model_actor_reuslt = pd.concat([actor_copy, result], axis=1)

model_actor_reuslt.rename(columns={0: ‘总分’},inplace=True)

model_actor_reuslt = model_actor_reuslt.sort_values(‘总分’,ascending=False).reset_index(drop=True)

五、数据描述

由于工作上经常使用BI工具tableau进行图表制作,因此下列的图表均用tableau绘制。其实pyecharts生成的图表也十分美观,为了方便这里就不用这个库画图了,有兴趣的小伙伴也可以了解下这个库。

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
61282296f86381401c05e862fe4e9.png)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-NnSXH8Lh-1713850924797)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值