python学习第十四天(自用)
饼状图
准备数据
设置传入参数,饼状图没有y轴,因此根据值的大小来区分,因此先传入值,再传入各个值所对应的名称
数据没显示,看不出来各个数据的比例,其中pie有个属性是autopct,显示占比数据
小数点前数字表示占位多少,不足的用空格补充,点后就是代表保留几位小数,f是float,因为我们想显示占比,所以结尾用%,但%在autopct里有特殊含义,因此要进行转义才行,所以用两个%括起来即可
提供图例
调整图例位置
保存图片方法
小结
数据分析实战案例
步骤
配置
创建子图并设置大标题,suptitle
获取各个子图
读取数据,发现年份是带小数点的
查看各列属性,发现年份这列是float64,这是由于年份这列有空值无法使用int64
但就想让其展示不带小数的内容,可以将类型转为Int64,Int64支持空值
需求一:根据年份查看电影数量变化
先对异常值、空值进行处理
发现年份这一列确实有空值,但不知道有多少
因此可以使用sum来进行统计,python中True是1,False是0,累加后就知道有多少个为空了
可以看到年份有两个是空的
处理缺失值,年份和上映时间的年份是相同的,因此可以将上映时间的年份赋值给年份
修改前
修改后
统计不同年份的电影数量
因为年份不是连续的,但显示我们希望它连续,因此直接获取最小值最大值得到一个连续的年份列表
Y的话是电影数量,因为会有年份没有电影,所以将其值默认为0,而series中有get方法,要是有对应的键就获取值,没有就填入默认值
绘制折线图
需求二,统计对比不同语言的电影数量(柱状图)
模板化,先分组,再取出x、y轴的数据,然后画出图像,这里让其从大到小排序
但会发现显示的文字都挤在一起了,因此需要修改一下
修改后
选中是x轴还是y轴,使其旋转90°
但会发现旋转后的数据把x的标签给盖住了,因此需要调整子图间的位置
调整子图间的位置
可以看到语言这一行展示出来了
需求三、统计对比不同类型电影数量(柱状图)
用空字典来存储数据,可以一一对应
遍历series并将该列以逗号进行分割,得到列表,遍历再得到其具体类型,然后判断该类型是否在字典中存储,若在就累加,若不在就创建并默认为1
取出键值对,键即为x轴,值为y轴
剩下进行模板化操作
画出图像
统计对比各个评分的电影数量占比(饼状图)
获取数据
获取索引和对应值
绘制饼状图并调整图例位置
优化:饼状图比例数据粘在一起,解决该问题
尝试调整大小
但发现治标不治本,因此尝试将内容少的进行合并操作,这样显示会更加清晰
将内容分为占比大的数据,和占比小的数据,小数据就进行合并
先获取总数据,便于计算比例
再获取各个评分电影的数量
数量大于整体的2%就认为是大数据
小数据就是小于2%
获取数据,有值就合并
获取数据列表
绘制饼状图
AI重构代码,将我们jupyter文件放到python文件中执行,将我们所编写的功能封装为函数来进行操作
直接让ai帮我们操作即可
成功运行
