吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4093|回复: 25
收起左侧

[Python 转载] 【笔记】python数据分析——pandas可视化之总结案例

  [复制链接]
qianshang666 发表于 2021-3-17 00:35
本帖最后由 qianshang666 于 2021-3-17 00:36 编辑

往期数据分析笔记

【笔记】python数据分析——numpy初识1
【笔记】python数据分析——numpy初识2
【笔记】python数据分析——变换与编程中的轴
【笔记】python数据分析——numpy随机数函数
【笔记】python数据分析——numpy数组索引及切片
【笔记】python数据分析——元素级运算及通用函数
【笔记】python数据分析——条件逻辑运算
【笔记】python数据分析——统计学运算
【笔记】python数据分析——矩阵相乘
【笔记】python数据分析——应用案例之图像负片
【笔记】python数据分析——pandas初识
【笔记】python数据分析——pandas之增删查改
【笔记】python数据分析——pandas可视化之线型图
【笔记】python数据分析——pandas可视化之柱状图
【笔记】python数据分析——pandas可视化之直方图和密度图
【笔记】python数据分析——pandas可视化之散点图

可视化案例

关于数据集

我们在做数据分析的时候,数据集要么是别人给的现成数据,要么就是我们自己使用爬虫爬取的,而今天的案例就是现成的数据集,我今天使用的是数据集中的mpg文件,我把数据集发出来,大家可以用别的数据集练习一下
数据集链接:https://pan.baidu.com/s/1S_l6QFUhyuabBBuoEM8ufQ
提取码:fphq

首先我们先看看数据

0.分析数据集.png
上面就是数据图,因为我本人英文水平有限,所以我也是用了用百度才查全上面的列名是什么意思
mpg:油耗
cylinders:气缸
displacement:排水量
horsepower:马力
weight:重量
acceleration:加速度
model_year:车型年款
origin:汽车来源国家
name:车主名字

导包

import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt

依旧是常用的两个包,今天因为有数据,所以不需要使用numpy来构造数据,所以这里我就没有导入

读取数据

mpgs = pd.read_csv('./mpg.csv')
print(mpgs)

运行图:
1.先打开csv文件.png
这样就将数据都读取出来了

统计学运算(describe方法)

print(mpgs.describe())

运行图:
2.describe描述方法.png
这个方法的作用是计算全为数字列的统计学计算,包括总数,平均值,最大值,最小值,百分比
重点:只对全都为数字的列进行

是否缺失值(info方法)

print(mpgs.info())

运行图:
3.info查看是否有缺失值.png
这个是查看每一列是否有缺失值,比如我们在读取文件的最后一列发现写着398 rows X 9 columns,也就是说有398行,9列
我们通过info就可以找到哪个里面缺少数据
运行图中可以看到,horsepower这一列只有392个值,我们通过观察文件,就可以看到确实少了几个

绘制一个散点图

我们先前情回顾一下,散点图有两点我们要注意
第一:kind参数值为scatter
第二:必须要指定X轴的值和Y轴的值

mpgs.plot(kind = 'scatter',x = 'horsepower',y = 'weight')
plt.show()

运行图:
4.horsepower和weight之间的散点图.png
我们这个图是汽车的马力和重量之间的关系,我们通过散点图就可以看出来,这两个之间是呈现一个上升的趋势的

绘制一个折线图

我们再来回顾一下折线图,折线图是我们学的第一个pandas可视化的图像,它里面不放kind参数

cylinders_data = mpgs[mpgs['model_year'] == 70]['cylinders'].mean()
print(cylinders_data)
horsepower_data = mpgs[mpgs['model_year'] ==70]['horsepower'].mean()
print(horsepower_data)

cylinders_horsepower = Series([cylinders_data,horsepower_data],index = ['cylinders_data','horsepower'])
cylinders_horsepower.plot(color = 'red')
plt.show()

运行图:
5.马力和气缸的折线图.png
接下来我分解一下mpgs[mpgs['model_year'] ==70]['horsepower'].mean()这行代码

mpgs['model_year'] ==70这句的意思就是查找model_year中数值为70的值,这句返回的是布尔值,也就是为70的行会为TRUE

mpgs[mpgs['model_year'] ==70]['horsepower']这句的意思是通过上局筛选出来的TRUE值,取出这些为TRUE的行中的horsepower的值

mean()这个的意思就是取出这些值的平均值

绘制一个柱状图

柱状图有横线和纵向,横向的参数值是barh,纵向的函数值是bar

mpgs['displacement'] = mpgs['displacement']/(mpgs['displacement'] + mpgs['weight'])
mpgs['displacement'].plot(kind = 'bar')
plt.show()

运行图:
6.不适合柱状图.png
这个本来我是想画出displacement对于displacement和weight的百分比的,但是最后画出来的结果却是这样,这个就证明我们选的图像出了问题

换为直方图展示

直方图很例外,它使用的不是plot()方法,而是使用hist()方法

mpgs['displacement'] = mpgs['displacement']/(mpgs['displacement'] + mpgs['weight'])
mpgs.hist()
plt.show()

运行图:
7.换为直方图.png

我们发现虽然图像是正常了,但是它将mpgs所有的值的图都显示了,但是我只想要displacement的图该怎么办呢,其实也很简单

mpgs['displacement'] = mpgs['displacement']/(mpgs['displacement'] + mpgs['weight'])
mpgs['displacement'].hist()
plt.show()

运行图:
8.只显示我们需要的直方图.png
这样就算是达到我们预期的效果了

pandas可视化完结

今天这个小案例也算是对pandas可视化的一个总结,我也是抛砖引玉随便搞了一下,当然,你们可以再继续利用之前讲过的东西进行举一反三的

今日鸡汤

我们生来就是为了成为自己,而不仅仅是变成一个正常人。

免费评分

参与人数 15吾爱币 +12 热心值 +14 收起 理由
夺笋 + 1 + 1 谢谢@Thanks!
Lgl86988 + 1 谢谢@Thanks!
UPC + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lyl610abc + 1 + 1 热心回复!
lonegm + 1 我很赞同!
蓝风 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
debug_cat + 1 + 1 我很赞同!
木头人zZ + 1 用心讨论,共获提升!
王星星 + 1 + 1 谢谢@Thanks!
magicmen + 1 + 1 用心讨论,共获提升!
zsr849408332 + 1 + 1 谢谢@Thanks!
李辉! + 1 + 1 谢谢@Thanks!
ciker_li + 1 + 1 我很赞同!
莹哥ing + 1 谢谢@Thanks!
为之奈何? + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| qianshang666 发表于 2021-3-17 01:37
夺笋 发表于 2021-3-17 01:15
很有用也很详细,期待一直更新

这个系列会一直更新下去的,也希望能与论坛的各位朋友共同进步
lonegm 发表于 2021-3-17 09:21
讲解的不错,那我就来贴用到的两个包的官方文档地址吧(当然都是英文的
pandas https://pandas.pydata.org/docs/user_guide/index.html
matplotlib https://matplotlib.org/stable/users/index.html
使用翻译,或者英语好的可以在这两个地方了解更多玩法(大概
莹哥ing 发表于 2021-3-17 01:49
eziolei 发表于 2021-3-17 05:21
希望一直更新下去吧。我也在学
opqrsgu 发表于 2021-3-17 05:29
不明觉厉!赞就完事了!
 楼主| qianshang666 发表于 2021-3-17 06:05
opqrsgu 发表于 2021-3-17 05:29
不明觉厉!赞就完事了!

很有前途啊,我喜欢
 楼主| qianshang666 发表于 2021-3-17 06:06
eziolei 发表于 2021-3-17 05:21
希望一直更新下去吧。我也在学

好的,会一直更新的
wolongfengchu 发表于 2021-3-17 06:58
感谢楼主分享
头像被屏蔽
i左小皓 发表于 2021-3-17 07:04
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| qianshang666 发表于 2021-3-17 08:21
i左小皓 发表于 2021-3-17 07:04
python库太多了,感觉无从下手

数据分析常用的库就只有四五个,而且我这个笔记基本上已经是面向零基础了,有些我们用不到的地方我就没有说
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 19:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表