这个并不是书籍里的章节,因为书籍中的 pandas 节奏太快了,基本都是涉及很多中高级的操作,好容易把小伙伴给劝退。我这里先出几期入门的教程,然后再回到书籍里的教程。这几章节作为入门,书籍作为进阶。
Pandas模块的一个重要方面是corr()
方法。corr()
方法计算你的数据集中每一列之间的关系。本页中的例子使用了一个CSV文件,名为:'data.csv'。
Download data.csv[1]. or Open data.csv[2]****
#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的信息。
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
参数指定你想要的散点图:
kind = 'scatter'
散点图需要一个X轴和一个Y轴。在下面的例子中,我们将使用 "持续时间 "作为X轴,"卡路里 "作为Y轴。包括x和y的参数,像这样:
x = 'Duration', y = 'Calories'
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
。
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
参数来指定你想要一个直方图:
kind = 'hist'
直方图只需要一列。直方图向我们显示每个间隔的频率,例如,有多少次锻炼是在50至60分钟之间进行的?在下面的例子中,我们将使用 "持续时间 "列来创建柱状图:
df["Duration"].plot(kind = 'hist')