大数据测试3

5.4 where

 本数据集收集的是美国地区的电影数据,对于电影的制作公司以及制作国家,在本次的故事 背景下不作分析。

5.5 who

5.5.1 分析票房分布及票房 Top10 的导演

先统计除各个制片公司的电影数量和:

 

    #production_companies制片公司

    clean_tmdb_5000_movies = "static/data/clean_df_tmdb_5000_movies.csv"

    # 显示所有列

    pd.set_option('display.max_columns', None)

    # 显示所有行

    pd.set_option('display.max_rows', None)

    # 显示宽度

    pd.set_option('display.width', None)

    clean_df_tmdb_5000_movies = pd.read_csv(clean_tmdb_5000_movies)

    temp_list = clean_df_tmdb_5000_movies["production_companies"].str.split(",").tolist()

    #Phantom Sound,Vision  The Sisterhood of the Traveling Pants 2

    #Artisan Entertainment  The Way of the Gun

    #Vincent Gallo  Buffalo '66

    genre_list = list(set([i for j in temp_list for i in j]))

    # 构造全为0的数组

    zeros_df = pd.DataFrame(np.zeros((clean_df_tmdb_5000_movies.shape[0], len(genre_list))), columns=genre_list)

    # print(zeros_df)

    # 给每个制片公司出现的位置赋值为1

    for i in range(clean_df_tmdb_5000_movies.shape[0]):

        # zeros_df.loc[0,["Sci-fi","Mucical"]]=1

        zeros_df.loc[i, temp_list[i]] = 1

 

    # print(zeros_df.head(3))

    # 统计每个制片公司数量和

    genre_count = zeros_df.sum(axis=0)

    # print(genre_count)

    # 排序

    genre_count = genre_count.sort_values()

    genre_count_clean = genre_count[:-1]

print(genre_count_clean)

 

由于制片公司太多取20个展示

    clean_tmdb_5000_movies = "static/data/clean_df_tmdb_5000_movies.csv"

    # 显示所有列

    pd.set_option('display.max_columns', None)

    # 显示所有行

    pd.set_option('display.max_rows', None)

    # 显示宽度

    pd.set_option('display.width', None)

    clean_df_tmdb_5000_movies = pd.read_csv(clean_tmdb_5000_movies)

    production_companies_list=(get_production_companies().index)

    revenue_list = []  # 收入

    num = clean_df_tmdb_5000_movies.shape[0]  # 电影数目

    for i in range(len(production_companies_list)):

        revenue_list.append(0)

    for i in range(len(production_companies_list)):

        for j in range(num):

            if(production_companies_list[i] in clean_df_tmdb_5000_movies["production_companies"][j]):

                revenue_list[i]=revenue_list[i]+clean_df_tmdb_5000_movies["revenue"][j]

    plt.figure(figsize=(20, 8), dpi=80)

    labels = production_companies_list[-10:]

    sizes = revenue_list[-10:]

    explode = (0, 0.1, 0, 0)  # 0.1表示将Hogs那一块凸显出来

    plt.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=False, startangle=90)  # startangle表示饼图的起始角度

    plt.axis('equal')  # 加入这行代码即可!

plt.show()

Top10:

数据放进字典中对字典进行排序即可得到排序

    map= {}

    for i in range(len(production_companies_list)):

        map[production_companies_list[i]]=revenue_list[i]

 

    sorted(map.items(), key=lambda item: item[1])

    print(map)

利用直方图展示出来:

 

5.5.2 分析评分分布及评分 Top10 的导演

与票房同理,只不过变为评分

 

 

    clean_tmdb_5000_movies = "static/data/clean_df_tmdb_5000_movies.csv"

    # 显示所有列

    pd.set_option('display.max_columns', None)

    # 显示所有行

    pd.set_option('display.max_rows', None)

    # 显示宽度

    pd.set_option('display.width', None)

    clean_df_tmdb_5000_movies = pd.read_csv(clean_tmdb_5000_movies)

    production_companies_list = (get_production_companies().index)

    revenue_list = []  # 收入

    num = clean_df_tmdb_5000_movies.shape[0]  # 电影数目

    for i in range(len(production_companies_list)):

        revenue_list.append(0)

    for i in range(len(production_companies_list)):

        for j in range(num):

            if (production_companies_list[i] in clean_df_tmdb_5000_movies["production_companies"][j]):

                revenue_list[i] = revenue_list[i] + clean_df_tmdb_5000_movies["vote_average"][j]

    plt.figure(figsize=(20, 8), dpi=80)

    map= {}#利用字典进行排序

    for i in range(len(production_companies_list)):

        map[production_companies_list[i]]=revenue_list[i]

    sorted(map.items(), key=lambda item: item[1])

    _x=list(map.keys())[-10:]

    _y_count=list(map.values())[-10:]

    print(_y_count)

    # 直方图

    plt.figure(figsize=(20, 8), dpi=80)

    plt.bar(range(len(_x)), _y_count)

    plt.xticks(range(len(_x)), _x)

    plt.show()

    labels = production_companies_list[-20:]

    sizes = revenue_list[-20:]

    explode = (0, 0.1, 0, 0)  # 0.1表示将Hogs那一块凸显出来

    plt.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=False, startangle=90)  # startangle表示饼图的起始角度

    plt.axis('equal')  # 加入这行代码即可!

plt.show()

posted @ 2021-12-11 13:13  风吹过半夏  阅读(29)  评论(0编辑  收藏  举报