电影信息的各个属性(字段)之间存在相关性,选取budget,popularity,release_date,revenue,runtime,status,vote_average,vote_count字段作为分析对象
相关系数矩阵
每个子图都是每个维度和其他某个维度的相关关系图,这其中主对角线上的图,则是每个维度的数据分布直方图。其中可以看出各因素间相关性强弱的大小。
其中与评分相关性较强的因素有电影的popularity(流行度),runtime(电影时长),vote_count(影评人数) ,revenue(电影收益)。
代码部分:
1. import pandas as pd 2. data_m=pd.read_csv("data/项目一/data_mo.csv") 3. data_m
1. data_corr=data_m[["budget","popularity","release_date","revenue","runtime","status","vote_average","vote_count"]] 2. 3. data_corr
1. # 保留年份 2. data_corr.release_date=data_corr.release_date.str.split("-",expand=True)[0] 3. data_corr.release_date=data_corr.release_date.astype(int)
# 每个子图都是每个维度和其他某个维度的相关关系图,这其中主对角线上的图,则是每个维度的数据分布直方图。
# 而第二行代码是画出同样的图形,但却以vote_average这个维度的数据为标准,来对各个数据点进行着色,其结果如图所示。
# 从图中可以看出,vote_average这列数据共10个不同的数值,每个数值一种颜色,所以生成的图是彩色的
1. import seaborn as sns 2. 3. sns.pairplot(data_corr) 4. sns.pairplot(data_corr , hue ='vote_average') 5. # 每个子图都是每个维度和其他某个维度的相关关系图,这其中主对角线上的图,则是每个维度的数据分布直方图。 6. # 而第二行代码是画出同样的图形,但却以vote_average这个维度的数据为标准,来对各个数据点进行着色,其结果如图所示。 7. # 从图中可以看出,vote_average这列数据共10个不同的数值,每个数值一种颜色,所以生成的图是彩色的
热力图
通过相关系数矩阵与热力图分析各个字段间的相关性,各个字段间的相关系数在表中都呈现了强弱不同的关系
1. import matplotlib.pyplot as plt 2. figure, ax = plt.subplots(figsize=(12, 12)) 3. sns.heatmap(data_corr.corr(), square=True, annot=True, ax=ax)
通过热力图可以看到电影的popularity,runtime,vote_count,revenue与电影的评分vote_average存在较强的相关性与budget,release_datet相关性较弱