#统计电影分类,每一个类别有多少部电影 #思路:创建一个全0数组,以类别为列名,遍历每条数据,是此类别,则这一行的列值赋值为1 import pandas as pd import matplotlib.pyplot as plt import numpy as np file_path = "IMDB-Movie-Data.csv" df = pd.read_csv(file_path) # print(df.head(1)) # print(df.info()) #统计分类的列表 temp_list = df["Genre"].str.split(",").tolist() #[[],[],[],[],[]]列表中嵌套列表 genre_list = list(set([i for j in temp_list for i in j])) #构造全0数组 zeros_df = pd.Dataframe(np.zeros((df.shape[0],len(genre_list))),columns=genre_list) # print(zeros_df) #给每个电影出现分类的位置赋值1 #遍历所有行数据 for i in range(df.shape[0]): #zeros_df.loc[0,["A","B"]]=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() print(genre_count) # print(type(genre_count)) #画图 plt.figure(figsize=(20,8),dpi=80) _x = genre_count.index _y = genre_count.values plt.bar(_x,_y,color="b",width=0.4) # plt.bar(range(len(_x)),_y) # plt.xticks(range(len(_x)),_x) plt.xlabel("分类",fontdict={'family':'KaiTi','color':'k','size':20}) plt.ylabel("数量",fontdict={'family':'KaiTi','color':'k','size':20}) plt.title("电影分类情况总览",fontdict={'family':'KaiTi','color':'k','size':30}) plt.rcParams['font.sans-serif'] = ['KaiTi'] plt.rcParams['axes.unicode_minus'] = False plt.grid() plt.show()
结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)