数据用excel查看,加载了一定时间,查看数据量为十万条。
jupyter notebook 平台读取csv文件
首先导入需要的工具包 pandas 、matplotlib,以及显示图标的魔法函数%matplolib inline
pandas读取csv数据 并简单查看前五条数据,发现有空值:
数据清洗:
思考:考虑到空值数据类型不一样,采用自定义函数的方法进行简单填充。
方法:创建函数函数fill_nan(df),遍历每个列 ,对于object类型的数据用“缺失数据”字样填充,否则一律用数字0填充。并查看后5条填充后的数据。
查看运行结果,已经填充完毕:
问题一:把日期数据转变为DatatimeIndex类,即上图箭头所指。
方法:创建函数,按照每列的方向进行遍历,利用格式化字符串把“年月日”字样分别替换为一些常见的符号,比如:2017年6月1日替换为2017/6/1
运行结果:成功替换
问题二:来看看哪些导演的片子受欢迎,从好评率入手分析。
公式:好评率=好评数/评分人数
方法:1.按照“导演”字段分组,分别统计“好评数 ” 和“评分人数” ,并相除计算出好评率,仅计算top20。
2.可视化处理:好评率是100以内,计算结果为小数,故乘以100,采用直方图。
查看top20结果,基本好评率在98%以上,故设置y轴区间ylim=(97.9,100)之间。
可视化结果:
问题三:2001年——2016年评影人数有何变化趋势?
思考:按照“上映年份”字段分组,对“评影人数 ”字段求和,最后输出2001——2016年的结果即可,然后做面积图。
问题四:对于每年口碑电影在数据上如何筛选出来呢?(评分高、评影人数高、好评率高这些维度都可以作为衡量标准)
思考:箱型图中的异常可以用来判断。
方法:1.提取数据,包含上映年份 剧名 评分人数 好评数 四个字段
2.创建4*4的共16个子图
3.利用for循环先遍历出每年数据,再往指定位置上画箱型图。
4.对于那些电视剧是异常值,如何将这剧名筛选出来是问题五的内容啦。
箱型图 :
问题五:16年间,每年的异常值是哪些电视剧呢?
思考:iqr1.5倍中度异常,3倍为极度异常,按照iqr*3比较合适,以评分人数可以作为一个指标来衡量异常剧。(也可采用好评率、评分人数当年总占比等数据,日后讨论)
方法:先以2001年为例计算出上下分位数(q1,q3)、iqr,tmax 然后利用for循环遍历出每年的tmax,最后自定义一个函数,可以求出每年的tmax。
思考:现已知tmax,大于tmax的行即为异常剧,