1 需求
现在我们有一组从2006年到2016年1000部最流行的电影数据,数据来源:https://www.kaggle.com/damianpanek/sunday-eda/data
- 问题1:我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?
- 问题2:对于这一组电影数据,如果我们想rating,runtime的分布情况,应该如何呈现数据?
- 问题3:对于这一组电影数据,如果我们希望统计电影分类(genre)的情况,应该如何处理数据?
2 实现
# 导入包
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 读取数据
movie = pd.read_csv("./data/IMDB-Movie-Data.csv")
movie.head()
2.1 问题一:
我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?
- 得出评分的平均分
使用mean
函数
movie['Rating'].mean() # 6.723200000000003
- 得出导演人数信息
导演人数可能重复,故使用np.unique()
进行数据去重,求出唯一值,然后进行shape
形状获取
movie['Director'].unique.shape[0] # 644
np.unique(movie['Director']).shape[0] # 644
2.2 问题二:
对于这一组电影数据,如果我们想Rating,Runtime (Minutes)的分布情况,应该如何呈现数据?
- 直接呈现,以直方图的形式
选择分数列数据,进行plot
movie["Rating"].plot(kind='hist',figsize=(20,8))
- Rating进行分布展示
进行绘制直方图
# 1. 创建画布
plt.figure(figsize(20, 8), dpi=100)
# 2. 绘制
## 分成 20 组
plt.hist(movie['Rating'].values, bins=20)
# 2.1 增加 x 轴刻度
## 求出 x 轴最大值与最小值
max_ = movie['Rating'].max()
min_ = movie['Rating'].min()
## 20 组数据需要 20+1 个 x 轴刻度
x = linspace(min_, max_, 21)
plt