【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】

文章目录

  • ️‍ 1. 导入模块
  • ️‍ 2. Pandas数据处理
    • 2.1 读取数据
    • 2.2 查看数据信息
    • 2.3 拆分影视剧标签列
  • ️‍ 3. Pyecharts数据可视化
    • 3.1 各影视剧类型数量占比
    • 3.2 各剧情类型数量占比
    • 3.3 电视剧热度榜单TOP20
    • 3.4 电影热度榜单TOP20
    • 3.5 综艺热度榜单TOP20
    • 3.6 动漫热度榜单TOP20
    • 3.7 儿童热度榜单TOP20
    • 3.8 演员参演影视作品数量TOP20
    • 3.9 演员词云
    • 3.10 剧情类型词云
    • 3.11 关键词描述词云
  • ️‍ 4. 可视化项目源码+数据

大家好,我是 【Python当打之年(点击跳转)】

剧荒了?

本期利用 python 分析一下「近期的影视剧作品数据」 ,看看最近有哪些热门的电视剧、电影、综艺、动漫 等等,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

涉及到的库:

  • Pandas — 数据处理
  • Pyecharts — 数据可视化

️‍ 1. 导入模块

import pandas as pd
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Grid
from pyecharts.charts import WordCloud
from pyecharts.charts import PictorialBar
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')

️‍ 2. Pandas数据处理

2.1 读取数据

df = pd.read_excel("影视剧信息.xlsx")

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第1张图片

2.2 查看数据信息

df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 750 entries, 0 to 749
Data columns (total 6 columns):
影视剧名称 750 non-null object
影视剧标签 750 non-null object
弹幕数量 729 non-null object
热度 750 non-null int64
关键词描述 750 non-null object
高清图片网址 750 non-null object
dtypes: int64(1), object(5)
memory usage: 35.2+ KB

一共有750部影视剧数据,包含影视剧名称、影视剧标签、弹幕数量、热度、关键词、图片等字段信息。

2.3 拆分影视剧标签列

df1 = df.drop_duplicates(subset=['影视剧名称'])
df1 = df1.sort_values('热度',ascending=False)
df1[['类型','年份','剧情类型','演员','其他']] = df1['影视剧标签'].str.split(' / ',expand=True)
df1.head(10)

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第2张图片

️‍ 3. Pyecharts数据可视化

3.1 各影视剧类型数量占比

def get_pie1(df_type,range_color):
    pie1 = (
        Pie()
        .add(
            "",
            [list(z) for z in zip(df_type.index.tolist(), df_type.values.tolist())],
            radius=["30%", "60%"],
            label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)")
        )
        .set_colors(range_color)
        .set_global_opts(
            title_opts=opts.TitleOpts(title='1-各影视剧类型数量占比',pos_top='2%',pos_left="2%",
                    title_textstyle_opts=opts.TextStyleOpts(color='#fff200',font_size=20)),
            legend_opts=opts.LegendOpts( pos_top="5%"),
        )
    )
    return pie1

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第3张图片

  • 电视剧 94 部,上榜数量最多,占整个风云榜榜单的 41.6%
  • 电影 73 部,占整个风云榜榜单的 32.3%
  • 综艺 40 部,占整个风云榜数量的 17.7%
  • 儿童 11 部,占整个风云榜榜单的 4.87%
  • 动漫 8 部,占整个风云榜榜单的 3.54%
  • 头部影视剧类型电视剧、电影和综艺占比 92% 以上

3.2 各剧情类型数量占比

def get_pie2(word_count,range_color):
    pie2 = (
        Pie()
        .add(
            "",
            [list(z) for z in zip(list(word_count.keys()), list(word_count.values()))],
            radius=["25%", "70%"],
            label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"),
            rosetype='radius',
        )
        .set_colors(range_color)
        .set_global_opts(
            title_opts=opts.TitleOpts(title='2-各剧情类型数量占比',pos_top='2%',pos_left="2%",
                    title_textstyle_opts=opts.TextStyleOpts(color='#fff200',font_size=20)),
            legend_opts=opts.LegendOpts(pos_top='10%', pos_right="6%",orient='vertical'),
        )
    )
    return pie2

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第4张图片

  • 按影视剧剧情分类来看,榜单前三类型为:喜剧(20部)、爱情(17部)、动作(16部)

3.3 电视剧热度榜单TOP20

def get_pie2(x_data,y_data,icons,schs,range_color):
    p1 = (
            PictorialBar()
            .add_xaxis(x_data)
            .add_yaxis('',
                icons,
                label_opts=opts.LabelOpts(is_show=False),
                category_gap='40%',
                symbol_repeat='fixed',
                symbol_size=25,
                is_symbol_clip=True,
              )
            .set_global_opts(
                title_opts=opts.TitleOpts(
                    title='3-电视剧热度榜单TOP20',
                    pos_top='1%',
                    pos_left="1%",
                ),

                graphic_opts=[
                    opts.GraphicGroup(
                        graphic_item=opts.GraphicItem(right="5%", top="60%"),
                        children=[
                            opts.GraphicImage(
                                graphic_item=opts.GraphicItem(
                                    id_="logo", right=10, top=20, z=-10, bounding="raw", origin=[75, 75]
                                ),
                                graphic_imagestyle_opts=opts.GraphicImageStyleOpts(
                                    image=schs[-1],
                                    width=300,
                                    height=200,
                                    opacity=0.5,
                                ),
                            )
                        ],
                    ),
                ]

            )
           .reversal_axis()
        )
    p2 = (
            PictorialBar()
            .add_xaxis(x_data)
            .add_yaxis("",
                icons,
                label_opts=opts.LabelOpts(is_show=False),
                symbol_pos='start',
                symbol_size=[40,30],
                is_symbol_clip=False,
             )
            .set_global_opts(
                xaxis_opts=opts.AxisOpts(is_show=False),
                yaxis_opts=opts.AxisOpts(
                    is_show=True,
                    is_scale=True,
                    axistick_opts=opts.AxisTickOpts(is_show=False),
                    axisline_opts=opts.AxisLineOpts(is_show=False),
                    axislabel_opts=opts.LabelOpts(font_size=16,color='#FFC107',font_weight=700,margin=20),
                ),
            )
           .reversal_axis()
        )
    return p1,p2

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第5张图片

电视剧热度榜单前三:

  • 《莲花楼》:故人逢 江湖梦
  • 《长风渡》:白敬亭宋轶先婚后爱
  • 《消失的十一层》:警弟匪兄黑白对决

3.4 电影热度榜单TOP20

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第6张图片

电影热度榜单前三:

  • 《东北警察故事2》:硬核谢苗打爆不平
  • 《无间之战》:黄宗泽谢天华兄弟激战
  • 《超能一家人》:沈腾演绎真诚反派,这个应该看看评价,疑问?

3.5 综艺热度榜单TOP20

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第7张图片

综艺热度榜单前三:

  • 《奔跑吧第7季》:baby周深解锁奇幻之旅
  • 《中国说唱巅峰对决2023》:够狠,够勇,够巅峰
  • 《萌探探探案第3季》:黄子韬孙红雷强势回归

3.6 动漫热度榜单TOP20

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第8张图片

3.7 儿童热度榜单TOP20

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第9张图片

3.8 演员参演影视作品数量TOP20

def get_bar1(x_data,y_data,range_color):
    bar = (
        Bar()
           .add_xaxis(x_data)
           .add_yaxis('', y_data, category_gap='30%')
           .set_global_opts(
                title_opts=opts.TitleOpts(
                    title='8-演员参演影视作品数量TOP20',
                    pos_top='1%',
                    pos_left="1%",
                    title_textstyle_opts=opts.TextStyleOpts(color='#fff200',font_size=20)
                ),

                visualmap_opts=opts.VisualMapOpts(is_show=False, max_=6, min_=0, dimension=0,
                        range_color=range_color),
                legend_opts=opts.LegendOpts(is_show=False)
           )
           .set_series_opts(
                label_opts=opts.LabelOpts(is_show=True,position='right',font_style='italic')
            )
        .reversal_axis()
    )
    return bar

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第10张图片

演员参演影视作品数量榜单前三:

  • 黄景瑜 6 部:《极限挑战第9季》、《检察风云》、《爱上特种兵》、《罚罪》、《王牌部队》、《破冰行动》

  • 肖燕 5 部:《南洋女儿情》、《半是蜜糖半是伤 》、《小娘惹》、《民国奇探》、《招摇》

  • 朱一龙 5 部:《消失的她》、《知否知否应是绿肥红瘦》、《叛逆者》、《重启之极海听雷第一季》、《重启之极海听雷第二季》、《人生大事》

参演 4 部影视剧的演员有:杨颖、赵丽颖、张新成、白鹿、孙红雷、魏大勋

参演 3 部影视剧的演员有:白敬亭、宋轶、丁禹兮、范丞丞、沈腾、戴向宇、陈伟霆、张颂文、李一桐、倪妮、王鹤棣、杨迪、陈赫、雷佳音、李沁、陈晓、秦岚、任嘉伦、黄渤、张艺兴

3.9 演员词云

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第11张图片

3.10 剧情类型词云

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第12张图片

3.11 关键词描述词云

【32 Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!】_第13张图片

️‍ 4. 可视化项目源码+数据

点击跳转:【全部可视化项目源码+数据】


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

你可能感兴趣的:(Pyecharts系列,Python可视化系列,Python爬虫,python,数据可视化,数据分析)