Matplotlib绘图库入门(八):补遗

使用groupby 区分不同的分类

对数据进行分类是机器学习的一个重点,在学习之前把不同分组的数据展示出来是前期的一个重要工作,pandas 中一个重要的方式是对数据进行分类也就是groupby

展示ex2data1.txt 中的数据,其中数据格式如下:

... 
34.62365962451697,78.0246928153624,0
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
60.18259938620976,86.30855209546826,1
79.0327360507101,75.3443764369103,1
45.08327747668339,56.3163717815305,0
...

使用pandas 对数据进行加载并做上标签。

import pandas as pd
df = pd.read_csv("ex2data1.txt", names=['A_score','B_score','label']

再看看df 中的值是:

      A_score    B_score  label
0   34.623660  78.024693      0
1   30.286711  43.894998      0
2   35.847409  72.902198      0
3   60.182599  86.308552      1
4   79.032736  75.344376      1
...

数据中加上了 A_score B_score label的标签。

在对df进行分类,分类的结果是什么呢?

grouped = df.groupby('label')

for key,group in grouped:
    print key,group

通过对label 进行分组好,得到了几组数据,group 中的数据就是已经分好类的数据。可以看到所有group分组中的数据不是0,就是1了。

所有的分类数据按照不同分组显示不同颜色展示在界面上,总的代码如下:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv("ex2data1.txt", names=['A_score','B_score','label'])
colors = {0:'red',1:'blue'}
key_name = {0:'red',1:'blue'}
fig,ax = plt.subplots()
grouped = df.groupby('label')

for key,group in grouped:
    print group
    group.plot(ax = ax,kind = 'scatter',x='A_score',y='B_score',label=key,color = colors[key])

plt.show()

图片如下,不同颜色代表了不同的分类:

转载请标明来之:http://www.bugingcode.com/

更多教程:阿猫学编程


来自您的鼓励

如果您感觉这一系列的教程,读后有点收获,并对知识有点了解,不妨小额捐助我一下,让我有动力继续写出更多好文章;或者在评论区留下你的意见。