回顾一下,2018 年中国的电影票房可以说是再创了一个新纪录,实现了总票房突破 600 亿的成绩。作为一个影迷,当然还是需要认真盘点一下啦!今天我们使用 Python 的 Pandas 库,对猫眼专业电影排行榜的 2018 年电影票房 Top50 的数据来进行一次简单的数据分析。
Part one:Index
Pandas 库是用于提供高性能易用数据类型和分析工具的 python 第三方库,而要对Series、Dataframe类型的数据进行运算、提取数据特征、进行数据间的关联等操作,离不开对 index 的使用。下面,我们就用猫眼电影数据为例子,解锁数据分析的新姿势。
更多干货分享加python编程语言学习QQ群 515267276
数据读取与观察
因为 pandas 是基于 numpy 实现的,我们需要导入 numpy 与 pandas 库和数据存储路径,并使用 read_csv 函数读取数据,用head函数展示数据的前几行(默认为5行):
remark:排片是按照票房数据进行的排名
基于index的数据排序与筛选
接下来,我们可以对这些电影按照上映时间排序,再对排序后的电影进行提取、筛选、汇总的操作。这里我们想要提取每个月份的电影数据,并汇总。
第一步,是对上映时间转换格式,我们采用 datatime 的时间格式。然后,以上映时间作为排序变量,对电影数据进行重新排序:
当当当~成功按照上映时间进行展示:
可这还不够,我们要做的是将上映时间作为我们的行索引(index),方便我们进行数据处理。所以我们进行第二步,指定该列作为我们的行索引:
最后,我们就可以对这Top50的电影数据按月度进行加总,终于得到每个月度Top50票房电影的票房总额:
It's amazing!
使用index对数据直接索引筛选
Pandas 的 index 功能提供了对低维数据和高维数据的索引和筛选功能,既可以采用行列索引的方式提取某个元素值,也可以通过切片的方式提取部分行列的元素值。
举两个栗子来说明方法。
第一个,我们想提取出在去年正月初一新春第一天,也就是2018年2月16日上映的所有电影的类型,我们可以这样操作:
我们先将这些数据放入一个 DataFrame 中,并检查对应的列索引。
有了行列索引,我们就可以根据对应的索引来找到相应的数据值,然后使用 loc 函数分别指定行索引和列索引: