pandas案例二(统计电影分类情况)

统计电影分类情况
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
df = pd.read_csv("D:/test/youtube_video_data/IMDB-Movie-Data.csv")
print(df.head())
print(df.info())

pandas案例二(统计电影分类情况)_第1张图片

#分类
print(df["Genre"])

pandas案例二(统计电影分类情况)_第2张图片

"""
思路:重新构造一个全为0的数组,列名为全部展开的分类,行为原来数据的长度,如果某一条数据中出现分类,就让01,然后每列相加得到分类数据
"""
#获取分类列表
temp_list = df["Genre"].str.split(",").tolist()
print(temp_list)

[[‘Action’, ‘Adventure’, ‘Sci-Fi’], [‘Adventure’, ‘Mystery’, ‘Sci-Fi’], [‘Horror’, ‘Thriller’], [‘Animation’, ‘Comedy’, ‘Family’], [‘Action’, ‘Adventure’, ‘Fantasy’], [‘Action’, ‘Adventure’, ‘Fantasy’], [‘Comedy’, ‘Drama’, ‘Music’], [‘Comedy’], [‘Action’, ‘Adventure’, ‘Biography’], [‘Adventure’, ‘Drama’, ‘Romance’]]

#展开数据组成一个数据
genre_list = list(set([i for j in temp_list for i in j]))
print(genre_list)

在这里插入图片描述

构造一个全为0的数组,axis=0轴为分类列表
#构造一个全为0的数组,axis=0轴为分类列表
zeros_list = pd.DataFrame(np.zeros((df.shape[0],len(genre_list))),columns=genre_list)
print(zeros_list)

pandas案例二(统计电影分类情况)_第3张图片

给每个电影出现的分类的位置赋值为1
#给每个电影出现的分类的位置赋值为1
for i in range(df.shape[0]):
    zeros_list.loc[i,temp_list[i]]=1
print(zeros_list.head(3))

pandas案例二(统计电影分类情况)_第4张图片

统计每个分类的数量和
#统计每个分类的数量和
genre_count=zeros_list.sum(axis=0)
print(genre_count)

pandas案例二(统计电影分类情况)_第5张图片

#排序
genre_count = genre_count.sort_values()
print(genre_count)
_x = genre_count.index
_y= genre_count.values
print(_x,_y)
#设置图像大小
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(_x)),_y)
#设置x轴的刻度
plt.xticks(range(len(_x)),_x)
plt.show()

pandas案例二(统计电影分类情况)_第6张图片

你可能感兴趣的:(数据分析,pandas,数据分析)