zoukankan      html  css  js  c++  java
  • 大数据测试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()

  • 相关阅读:
    hdu2328 Corporate Identity
    hdu1238 Substrings
    hdu4300 Clairewd’s message
    hdu3336 Count the string
    hdu2597 Simpsons’ Hidden Talents
    poj3080 Blue Jeans
    poj2752 Seek the Name, Seek the Fame
    poj2406 Power Strings
    hust1010 The Minimum Length
    hdu1358 Period
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15675276.html
Copyright © 2011-2022 走看看