0
点赞
收藏
分享

微信扫一扫

Pandas缺失值处理、电影案例分析

kmoon_b426 2022-01-20 阅读 85
python

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)

 

举报

相关推荐

0 条评论