IMDB电影数据分析实践

本文通过对IMDB5000部电影数据集的分析,涵盖了数据准备、数据清洗和数据分析及可视化展示。在数据准备阶段,导入numpy和pandas,处理了缺失值和重复值。在数据分析部分,对电影出品国及地区的数量、演员票房、电影数量、电影类型以及电影评分进行了深入分析,并绘制了相应的图表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IMDB电影数据分析实践

根据IMDB5000部电影数据集进行下列数据分析:

  • 数据准备:读取数据并查看数据的基本信息
  • 数据清洗:缺失值处理,重复值处理,处理后“干净”数据的基本信息。
  • 数据分析及可视化展示:
  1. 电影出品国及地区和演员票房的情况分析:
    绘制电影出品数量排名前10位的国家及地区的条形图;绘制票房前十的电影中喜爱男 1 号,男 2 号,男 3 号的人数的分组条形图。

  2. 电影数量的分析:
    按年份统计每年电影总数量、彩色影片数量和黑白影片数量并绘制折线图(在同一个坐标系中绘制)。

  3. 电影类型的分析:
    绘制不同类型的电影数量条形图和饼图。

  4. 电影评分统计及电影评分相关因素分析:
    找出评分排名前 20 位电影的片名和评分;绘制所有影片评分与受欢迎程度的关系散点图。


一、数据准备:

读取数据并查看数据的基本信息

1. 导入numpy 包和 pandas 包,使用 read_csv 方法读取本地 csv 数据;

import pandas as pd 
import numpy as np
movies = pd.read_csv('D:\\gaojie\\movie_metadata.csv',encoding='utf—8')

2. 查看数据的基本内容、结构

  1. 打印前五行观察

    movies.head (5)
    

    image-20211209190003649

    通过前五行,可以看出数据集有28列,以及具体的列名。同时也可以发现,前五行里就有空值较多的行,说明我们需要对数据作处理。

  2. 输入 .shape 看看有多少行多少列

    movies.shape
    

    image-20211209190658108

    可以看到,数据集的维度是5043行,28列。

  3. 查看列的数据类型

    movies.dtypes
    

    image-20211209191020723

    可以看出,数据集中涉及数据的列默认为 float64 和 int64,无需对数据做类型转换。而其他列均为 object 类型,后面需要考虑是否做类型转换。

二、数据清洗

数据清洗也叫数据预处理,因为大多时候获取的数据并不符合我们的数据分析的标准这时候我们就需要对数据进行预处理,使之数据更加规整有序方便我们下一步的分析。数据清洗通常需要数据分析大部分时间,但是我觉得也是有一定的步骤的,我将它大致分为六部曲: 选择子集→列名重命名→缺失数据处理→数据类型转换→数据排序→异常值处理

1. 缺失数据处理

  1. 先通过isnull函数看一下是否有空值,结果是有空值的地方显示为True,没有的显示为False

    print(movies.isnull())
    

    可以看到有空值的行非常之多,在分析之前我们需要处理对行进行取舍。

  2. 再通 过 isnull().sum() 直接看每一列有多少空值

    print(movies.isnull().sum())
    

    image-20211209194529440

    可以看到,只有极少列没有空值,有的列空值异常之多。因此我们处理的时候只能选择让重点的列没有空值,删除行而不要删除列。

  3. 为了方便我们这里选择直接删除有缺失值的行

    print ('删除缺失值前数据集大小 ',movies.shape )
    
    # how=‘any’ 在给定的任何一列中有缺失值就删除
    movies = movies.dropna(how ='any' )
    print ('删除缺失值后大小 ',movies.shape )
    

    image-20211209203121835

    可以看到一千多行有缺失值的数据被删除掉了,对数据的损耗还是非常大的。最好是只删除重要列有缺失值的行,或者按缺失值的比例删除。规定n行有多少个缺失值时再删除。

  4. 这里我们选择删除电影名重复的行:

    movies.drop_duplicates(subset=["movie_title"],keep='first',inplace=True)
    print(movies
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值