import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
movie1 = movie = pd.read_csv("./IMDB-Movie-Data.csv")
np.any(pd.isnull(movie1)) #判断里面是否有一个缺失值,有就还回True
np.all(pd.notnull(movie1)) #判断里面是否有一个缺失值,有就还回False
np.any(pd.isnull(data)) #判断里面是否有一个缺失值,有就还回True
movie1["Revenue (Millions)"].head(10)
movie1["Revenue (Millions)"].fillna(value=movie1["Revenue (Millions)"].mean()).head(10)
for i in movie1.columns:
if np.any(pd.isnull(movie1[i])) == True:
movie1[i].fillna(value=movie[i].mean(),inplace=True)
np.any(pd.isnull(movie1)) #判断里面是否有一个缺失值,有就还回True
movietemp = movie1.replace(to_replace="?",value=np.nan)#如果有?这个问号,可以这样来替换
movietemp = movietemp.dropna()#如果有缺失值,可以用这命令删除
1 问题1:我们想知道这些电影数据中评分的平均分,导演人信息,我们应该怎么获取?
#movie = pd.read_excel("../qt/电影.xlsx")
movie = pd.read_csv("./IMDB-Movie-Data.csv")
#movie2 = pd.read_table("../qt/movies.dat", sep='::', header=None, engine = 'python')
movie["Rating"].mean()
movie["Director"].count()
#去重后,取形状的数据即可看到去重后的导演
movie["Director"].unique().shape[0]
2 问题2:
对于这一组电影数据,如果我们想Rating,Runtime(minutes)的分布情况
#电影评分
#创建画布
plt.figure(figsize=(20,8),dpi=100)
#绘制
plt.hist(movie["Rating"].values,20)
#2.1 增加x轴刻度
max_ = movie["Rating"].max()
min_ = movie["Rating"].min()
x1 = np.linspace(min_,max_,21)
plt.xticks(x1)
#显示网格
plt.grid()
#显示
plt.show()
#时长分布统计
#创建画布
plt.figure(figsize=(20,8),dpi=100)
#绘制
plt.hist(movie["Runtime (Minutes)"].values,20)
#2.1 增加x轴刻度
max_ = movie["Runtime (Minutes)"].max()
min_ = movie["Runtime (Minutes)"].min()
x1 = np.linspace(min_,max_,21)
plt.xticks(x1)
#显示网格
plt.grid()
#显示
plt.show()
3 3 对于这一组电影数据,如果我们希望统计电影分类的情况,应该如何处理数据?
movie["Genre"].head()
temp_list = [i.split(",") for i in movie["Genre"]]
array_list = np.unique([j for i in temp_list for j in i])
array_list
array_list.shape[0]
# 创建一个全为零的genre_zero
genre_zero = pd.DataFrame(np.zeros((movie.shape[0],array_list.shape[0])),columns=array_list)
genre_zero.head()
for i in range(1000):
genre_zero.loc[i,temp_list[i]] = 1
genre_zero.head()
genre_zero.sum().sort_values(ascending=False).plot(kind="bar",figsize=(20,8),colormap="cool",fontsize=10)