文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据分析案例-电影数据可视化分析

2023-10-03 09:43

关注

数据介绍

数据为2011-2021电影数据

可视化分析

首先导入本次项目需要的包和数据

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsfrom pyecharts.charts import Piefrom pyecharts import options as  opts from pyecharts.globals import ThemeTypesns.set_style('ticks')import warningswarnings.filterwarnings('ignore') # 忽略警告plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示plt.rcParams['axes.unicode_minus'] = False   #解决符号无法显示data = pd.read_excel('data.xlsx')data.head()

数据预处理

data.dropna(inplace=True)data.reset_index(drop=True,inplace=True)data.drop_duplicates(['电影名称'],inplace=True)data['年份'] = data['上映时间'].apply(lambda x:x.split('-')[0])# 将首周票房中的--数据删除data[data['首周票房']=='--'].indexdata.drop(index=data[data['首周票房']=='--'].index,inplace=True)data.reset_index(drop=True,inplace=True)# 将首周票房亿单位转化为万,且只保留数字data['首周票房'] = data['首周票房'].apply(lambda x: float(x[:-1])*1000 if x[-1] == '亿' else float(x[:-1]))# 将累计票房亿单位转化为万,且只保留数字data['累计票房'] = data['累计票房'].apply(lambda x: float(x[:-1])*1000 if x[-1] == '亿' else float(x[:-1]))

 可视化

# 分析各个年份的总票房df1 = data.groupby('年份').sum()['累计票房']plt.figure(figsize=(10,8))plt.title('各个年份的总票房',fontsize=14)plt.xlabel('年份',fontsize=14)plt.ylabel('总票房(万元)',fontsize=14)plt.bar(x=df1.index,height=df1.values)plt.show()

# 分析各个年份的电影比例result_list = [(i,j) for i,j in zip(df1.index.to_list(),df1.values.tolist())]a = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK))a.add(series_name='年份',        data_pair=result_list,        rosetype='radius',        radius='70%',        )a.set_global_opts(title_opts=opts.TitleOpts(title="各个年份的电影比例",                    pos_top=50))a.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} 
{b}:{c} ({d}%)'))a.render_notebook()

 

# 分析各个年份的平均票价df2 = data.groupby('年份').mean()['平均票价']plt.figure(figsize=(10,8))plt.title('各个年份的平均票价',fontsize=14)plt.xlabel('年份',fontsize=14)plt.ylabel('平均票价(元)',fontsize=14)plt.plot(df2.index,df2.values)plt.show()

 

# 分析电影片长的分布sns.displot(data['片长'],bins=30,kde=True)

# 分析电影平均票价的分布sns.displot(data['平均票价'],kde=True)

 

# 分析导演喜爱度的分布sns.displot(data['导演喜爱度'],kde=True)

 

df3 = data['来源'].apply(lambda x:x.split(',')[0]).value_counts().head()# 各个地区的电影比例a1 = Pie(init_opts=opts.InitOpts(theme = ThemeType.CHALK))a1.add(series_name='地区',        data_pair=[list(z) for z in zip(df3.index.to_list(),df3.values.tolist())],        rosetype='radius',        radius='60%',        )a1.set_global_opts(title_opts=opts.TitleOpts(title="各个地区的电影比例",                    pos_left='center',                    pos_top=30))a1.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} 
{b}:{c} ({d}%)'))a1.render_notebook()

# 分析拍电影数前五的发行公司df4 = data['发行公司'].value_counts().head().plot(kind='barh')

 

# 分析片长和评分的关系plt.figure(figsize=(10,8))plt.scatter(data['片长'],data['评分'])plt.title('片长和评分的关系',fontsize=15)plt.xlabel('片长',fontsize=15)plt.ylabel('评分',fontsize=15)plt.show()

 

# 分析各个特征之间的相关系数fig = plt.figure(figsize=(18,18))sns.heatmap(data.corr(),vmax=1,annot=True,linewidths=0.5,cbar=False,cmap='YlGnBu',annot_kws={'fontsize':25})plt.xticks(fontsize=20)plt.yticks(fontsize=20)plt.title('各个特征之间的相关系数',fontsize=20)plt.show()

# 分析年度总票房走势df1 = data.groupby('年份').sum()['累计票房']plt.figure(figsize=(10,8))plt.title('年度总票房走势',fontsize=14)plt.xlabel('年份',fontsize=14)plt.ylabel('总票房(万元)',fontsize=14)plt.plot(df1.index,df1.values)plt.show()

# 分析哪种制片制式最受欢迎from pyecharts.charts import WordCloudimport collectionsresult_list = []for i in data['制片制式'].values:    word_list = str(i).split('/')    for j in word_list:        result_list.append(j)result_listword_counts = collections.Counter(result_list)word_counts_top = word_counts.most_common(50)print(word_counts_top)wc = WordCloud()wc.add('',word_counts_top)wc.render_notebook()

 

# 分析各种制式制片的比例a2 = Pie(init_opts=opts.InitOpts(theme = ThemeType.CHALK))a2.add(series_name='类型',        data_pair=word_counts_top,        radius='60%',        )a2.set_global_opts(title_opts=opts.TitleOpts(title="各种制式制片的比例",                    pos_top=50))a2.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} 
{b}:{c} ({d}%)'))a2.render_notebook()

 

# 分析各种类型的电影出现的次数from pyecharts.charts import WordCloudimport collectionsresult_list = []for i in data['电影类型'].values:    word_list = str(i).split(' / ')    for j in word_list:        result_list.append(j)result_listword_counts = collections.Counter(result_list)# 词频统计:获取前100最高频的词word_counts_top = word_counts.most_common(100)print(word_counts_top)wc = WordCloud()wc.add('',word_counts_top)wc.render_notebook()

 

# 分析各种类型电影的比例word_counts_top = word_counts.most_common(10)a3 = Pie(init_opts=opts.InitOpts(theme = ThemeType.MACARONS))a3.add(series_name='类型',        data_pair=word_counts_top,        rosetype='radius',        radius='60%',        )a3.set_global_opts(title_opts=opts.TitleOpts(title="各种类型电影的比例",                        pos_left='center',                    pos_top=50))a3.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} 
{b}:{c} ({d}%)'))a3.render_notebook()

以下是心得体会:

通过这次Python项目实战,我学到了许多新的知识,这是一个让我把书本上的理论知识运用于实践中的好机会。原先,学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。

在这次实战中还锻炼了我其他方面的潜力,提高了我的综合素质。首先,它锻炼了我做项目的潜力,提高了独立思考问题、自我动手操作的潜力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等

在此次实战中,我还学会了下面几点工作学习心态:

1)继续学习,不断提升理论涵养。在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更就应把学习作为持续工作用心性的重要途径。走上工作岗位后,我会用心响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升潜力,以广博的社会知识拓展视野。

2)努力实践,自觉进行主角转化。只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是透过实践活动来实现的,也只有透过实践才能锻炼人的品质,彰显人的意志。

3)提高工作用心性和主动性。实习,是开端也是结束。展此刻自我面前的是一片任自我驰骋的沃土,也分明感受到了沉甸甸的职责。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值。

这次Python实战不仅仅使我学到了知识,丰富了经验。也帮忙我缩小了实践和理论的差距。在未来的工作中我会把学到的理论知识和实践经验不断的应用到实际工作中,为实现理想而努力。

在这次实战中还锻炼了我其他方面的潜力,提高了我的综合素质。首先,它锻炼了我做项目的潜力,提高了独立思考问题、自我动手操作的潜力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等

1)继续学习,不断提升理论涵养。在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更就应把学习作为持续工作用心性的重要途径。走上工作岗位后,我会用心响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升潜力,以广博的社会知识拓展视野。

2)努力实践,自觉进行主角转化。只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是透过实践活动来实现的,也只有透过实践才能锻炼人的品质,彰显人的意志。

3)提高工作用心性和主动性。实习,是开端也是结束。展此刻自我面前的是一片任自我驰骋的沃土,也分明感受到了沉甸甸的职责。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值。

这次Python实战不仅仅使我学到了知识,丰富了经验。也帮忙我缩小了实践和理论的差距。在未来的工作中我会把学到的理论知识和实践经验不断的应用到实际工作中,为实现理想而努力。

来源地址:https://blog.csdn.net/m0_64336780/article/details/125242138

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯