数据分析实战—IMDB电影数据分析

1.实战内容

1.加载数据到movies_df**,输出前5行,输出****movies_df.info(),movies_df.describe()**

python 复制代码
# (1)加载数据集,输出前5行
#导入库
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['axes.unicode_minus'] = False

movies_df=pd.read_csv('movie_metadata.csv')
movies_df.head(5)#输出前5行

此为运行结果部分内容

python 复制代码
movies_df.info()    # 输出了27列特征的名称,非空数据个数,数据类型
python 复制代码
movies_df.describe()#输出movies_df的基本统计量和分位数等值

此为运行结果部分内容

2.数据清洗:统计每列缺失值个数;删除任何含有缺失值的行;删除重复数据;查看数据清洗后的数据集(movies_df_new)信息。

python 复制代码
#(4)统计缺失值个数并打印
column_null_number = movies_df.isnull().sum()
print('每列缺失值个数','\n',column_null_number)
python 复制代码
# (5)删除有缺失值的行,并将结果保存到数据集(movies_df_nonull)
movies_df_nonull = movies_df.dropna()
print('每列缺失值个数','\n',movies_df_nonull.isnull().sum())
print('数据个数',movies_df_nonull.shape)
python 复制代码
# (6)删除重复数据,并将结果保存到数据集(movies_df_new)
movies_df_new = movies_df_nonull.drop_duplicates(keep='first')
movies_df_new.count()
python 复制代码
movies_df_new.info() #验证一下结果

3.数据分析及与视化

python 复制代码
# (7)统计每个国家及地区出品的电影数量并打印
country_group = movies_df_new.groupby('country').size()
country_group
python 复制代码
# (8)显示电影出品数量排名前10位的国家及地区
group_head_10=country_group.sort_values(ascending=False).head(10)
group_head_10
python 复制代码
#(9)绘制电影出品数量排名前10位的柱形图,本题5分
group_head_10.plot(kind = 'bar')
plt.xlabel("country/area")
python 复制代码
# (10) 按年份统计每年的电影数量
group_year= movies_df_new.groupby('title_year').size()
group_year
python 复制代码
#(11)绘制每年的电影数量图形
group_year.plot()
python 复制代码
# (12)按年份统计每年电影总数量、彩色影片数量和黑白影片数量并绘制图形
movies_df_new['title_year'].value_counts().sort_index().\
plot(kind='line',label='total number')
movies_df_new[movies_df_new['color']=='Color']['title_year'].\
value_counts().sort_index().plot(kind='line',\
c='red',label='color number')
movies_df_new[movies_df_new['color']!='Color']['title_year'].\
value_counts().sort_index().plot(kind='line',c='black',\
label='Black White number')
plt.legend(loc='upper left')
python 复制代码
# (13)计算不同类型的电影数量
# 提示:根据电影题材(Genres)列,进行统计。如某个电影的题材包含在|Action|Adventure|Fantasy|Sci-Fi这四类中。
# 提示:先读取movies_df_new['genres'],然后再用split进行分割读取。
types = []
for tp in movies_df_new['genres']:
             sp = tp.split('|')
             for x in sp:
                 types.append(x)
types_df = pd.DataFrame({'genres':types})
types_df
types_df_counts = types_df['genres'].value_counts()
types_df_counts
types_df_counts.plot(kind='bar')
plt.xlabel('genres')
plt.ylabel('number')
plt.title('genres&number')

4.电影票房统计及电影票房相关因素的分析

python 复制代码
# (14)每年票房统计并打印
year_gross = movies_df_new.groupby('title_year')['gross'].sum()
year_gross
python 复制代码
# (15)绘制每年的票房统计图,本题5分
year_gross.plot(figsize=(10,5))
plt.xticks(range(1915,2018,5))
plt.xlabel('year')
plt.ylabel('gross')
plt.title('year&gross')
python 复制代码
# (16)查看票房收入排名前20位的电影片名和类型
movie_grose_20 = movies_df_new.sort_values(['gross'],\
ascending=False).head(20)
movie_grose_20[['movie_title','gross','genres']]
python 复制代码
# (17)电影评分与票房的关系散点图
# 提示:纵坐标要除以1000000000
plt.scatter(x= movies_df_new.imdb_score,y=movies_df_new.gross/1000000000)
plt.xlabel('imdb_score')
plt.ylabel('gross')
plt.title('imdb_score&gross')
python 复制代码
# (18)电影时长与票房的关系的散点图
# 提示:纵坐标要除以1000000000
plt.scatter(x= movies_df_new.duration,y=movies_df_new.gross/1000000000)
plt.xlabel('duration')
plt.ylabel('gross')
plt.title('duration&gross')

2.数据集下载

https://gitee.com/qxh200000/c_-code/commit/5e5f95f930dfc03b587c20768e82cb4ecbda96fb

相关推荐
高洁015 小时前
多模态AI模型融合难?核心问题与解决思路
人工智能·深度学习·机器学习·数据挖掘·transformer
聊聊MES那点事9 小时前
从数据采集到日报输出,FastReport如何帮工厂做好生产日报?
数据分析·报表工具·fastreport
kcuwu.10 小时前
Python数据分析三剑客导论:NumPy、Pandas、Matplotlib 从入门到入门
python·数据分析·numpy
数厘11 小时前
2.4MySQL安装配置指南(电商数据分析专用)
数据库·mysql·数据分析
databook12 小时前
逃离SQL丛林:实用主义的数据救赎
后端·sql·数据分析
wang_yb12 小时前
逃离SQL丛林:实用主义的数据救赎
数据分析·databook
hqyjzsb13 小时前
深度洞察人性需求!拆解传统心理咨询升级AI智慧辅导师数智工作流
人工智能·深度学习·学习·数据挖掘·aigc·学习方法·业界资讯
问组生物13 小时前
在线绘制带连线的配体-受体联合热图
数据分析·数据可视化·论文插图·科研绘图·科学科普·基因表达·联合热图
Aloudata14 小时前
如何通过 NoETL 指标平台根治跨业务口径混乱
数据分析·etl·指标平台·指标口径
小陈工14 小时前
Python Web开发入门(十八):跨域问题解决方案——从“为什么我的请求被拦了“到“我让浏览器乖乖听话“
开发语言·python·机器学习·架构·数据挖掘·回归·状态模式