数据分析实战—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

相关推荐
Aloudata技术团队16 分钟前
正当红的 Context Layer 到底是什么?
数据分析
饼干哥哥7 天前
开源Skills|搭建亚马逊动态关键词库系统,每天抓SSS级机会词
人工智能·深度学习·数据分析
倔强的石头_9 天前
企业工商数据源站点:无验证无拦截,批量获取工商数据完整方案
数据分析
hboot15 天前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
王小王-12316 天前
基于 Hive 的网易云音乐数据分析及可视化系统
hive·hadoop·数据分析·音乐数据分析·网易云音乐分析·hive音乐分析·hadoop网易云
Database_Cool_16 天前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
YangYang9YangYan16 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
有Li16 天前
PTCMIL:基于提示 token 聚类的全切片图像多实例学习分析文献速递/多模态医学影像最新进展
论文阅读·学习·数据挖掘·聚类·文献·医学生
数睿数据无代码开发16 天前
打破数据孤岛:深度解析 smardaten 数据连接器核心功能
数据挖掘·无代码
砚底藏山河16 天前
沪深A股:如何获取基金持股数据
java·python·数据分析·maven