前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >飞速搞定数据分析与处理-day5-pandas入门教程(相关性与绘图)

飞速搞定数据分析与处理-day5-pandas入门教程(相关性与绘图)

作者头像
用户10002156
发布2023-08-07 13:19:28
1980
发布2023-08-07 13:19:28
举报
文章被收录于专栏:生活处处有BUG

背景

这个并不是书籍里的章节,因为书籍中的 pandas 节奏太快了,基本都是涉及很多中高级的操作,好容易把小伙伴给劝退。我这里先出几期入门的教程,然后再回到书籍里的教程。这几章节作为入门,书籍作为进阶。

数据的关联性

寻找关系

Pandas模块的一个重要方面是corr()方法。corr()方法计算你的数据集中每一列之间的关系。本页中的例子使用了一个CSV文件,名为:'data.csv'。

Download data.csv[1]. or Open data.csv[2]****

代码语言:javascript
复制
#Show the relationship between the columns
df.corr()

Result Duration Pulse Maxpulse Calories Duration 1.000000 -0.155408 0.009403 0.922721 Pulse -0.155408 1.000000 0.786535 0.025120 Maxpulse 0.009403 0.786535 1.000000 0.203814 Calories 0.922721 0.025120 0.203814 1.000000

Note:corr()方法忽略了 "非数字 "列。

结果解释

corr()方法的结果是一个有很多数字的表格,表示两列之间的关系有多好。这个数字从-1到1不等。

1意味着存在1比1的关系(完美的相关性),对于这个数据集,每当第一列的数值上升时,另一列也会上升。

0.9也是一个很好的关系,如果你增加一个值,另一个值可能也会增加。

-0.9和0.9的关系一样好,但是如果你增加一个值,另一个值可能会下降。

0.2意味着不是一个好的关系,意味着如果一个值上升并不意味着另一个也会上升。

什么是好的相关性?这取决于用途,但我认为可以说你至少要有0.6(或-0.6)才能称之为好的相关性。

完美的关联性:

我们可以看到 "持续时间 "和 "持续时间 "得到的数字是1.000000,这很有意义,每一列总是与自己有完美的关系。

坏的相关性:

"持续时间 "和 "最大脉冲 "得到了一个0.009403的相关性,这是一个非常糟糕的相关性,这意味着我们不能仅仅通过查看锻炼的持续时间来预测最大脉冲,反之亦然。

绘图

绘图

Pandas使用plot()方法来创建图表。

我们可以使用Pyplot,Matplotlib库的一个子模块,在屏幕上实现图表的可视化。

在[Matplotlib教程](https://www.w3schools.com/python/matplotlib_intro.asp)中阅读更多关于Matplotlib的信息。

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('data.csv')

df.plot()

plt.show()

本页中的例子使用了一个名为:'data.csv'的CSV文件。

Download data.csv[3] or Open data.csv[4]

散点图

kind参数指定你想要的散点图:

代码语言:javascript
复制
kind = 'scatter'

散点图需要一个X轴和一个Y轴。在下面的例子中,我们将使用 "持续时间 "作为X轴,"卡路里 "作为Y轴。包括x和y的参数,像这样:

x = 'Duration', y = 'Calories'

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('data.csv')

df.plot(kind = 'scatter', x = 'Duration', y = 'Calories')

plt.show()

让我们创建另一个散点图,其中各列之间存在不良关系,如 "持续时间 "和 "脉冲",相关度为0.009403

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('data.csv')

df.plot(kind = 'scatter', x = 'Duration', y = 'Maxpulse')

plt.show()

柱状图

使用kind参数来指定你想要一个直方图:

代码语言:javascript
复制
kind = 'hist'

直方图只需要一列。直方图向我们显示每个间隔的频率,例如,有多少次锻炼是在50至60分钟之间进行的?在下面的例子中,我们将使用 "持续时间 "列来创建柱状图:

代码语言:javascript
复制
df["Duration"].plot(kind = 'hist')

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生活处处有BUG 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 数据的关联性
    • 寻找关系
      • 结果解释
      • 完美的关联性:
      • 坏的相关性:
  • 绘图
    • 绘图
      • 散点图
        • 柱状图
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档