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

相关推荐
duyinbi75178 小时前
YOLO11-MAN:多品种植物叶片智能识别与分类详解
人工智能·分类·数据挖掘
dear_bi_MyOnly8 小时前
数据分析常用操作汇总
大数据·python·数据挖掘·数据分析·学习方法
YangYang9YangYan8 小时前
2026高职大数据专业:数据分析学习的价值与前景
大数据·学习·数据分析
csdn_aspnet8 小时前
MATLAB 高效算法实战:数据分析与算法优化的效率秘诀
算法·matlab·数据分析
龙腾AI白云9 小时前
10分钟了解向量数据库(4)
人工智能·数据挖掘
lechcat9 小时前
多角色协同巡检流程设计技术教程
大数据·数据库·数据挖掘
jiaozi_zzq9 小时前
2026高职大数据与会计专业就业方向与能力发展指南
大数据·职场和发展·数据分析·证书
FL16238631299 小时前
七十四种不同鸟类图像分类数据集3995张74类别已划分好训练验证测试集
人工智能·分类·数据挖掘
小王毕业啦9 小时前
2024年-全国地级市之间地理距离矩阵数据
大数据·人工智能·数据挖掘·数据分析·社科数据·实证数据·地理距离矩阵
数智大号10 小时前
艾利特×迈幸机器人:引领智能操作新范式,开启具身智能新纪元
人工智能·数据挖掘