pandas 按字段分组

import matplotlib.pyplot as plt
import pandas as pd


df = pd.read_csv("/temp/iris.data",names=['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度', '类别'])

print(df.groupby('类别').mean())

系统按照类别对数据进行了划分,并且提供了每个特征的均值。让我们现在更进一步,得到每个类别完全的描述性统计信息。

import matplotlib.pyplot as plt
import pandas as pd


df = pd.read_csv("/temp/iris.data",names=['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度', '类别'])

print(df.groupby('类别').describe())

我们看出花瓣长度和宽度在不同类之间有一些比较明显的区别,这里让我们看看如何使用groupby来发现这一点。

import matplotlib.pyplot as plt
import pandas as pd


df = pd.read_csv("/temp/iris.data",names=['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度', '类别'])

print(df.groupby('花瓣宽度')['类别'].unique().to_frame)

我们便可以从花瓣宽度上找出与类型的规律

0.1                        [Iris-setosa]
0.2                        [Iris-setosa]
0.3                        [Iris-setosa]
0.4                        [Iris-setosa]
0.5                        [Iris-setosa]
0.6                        [Iris-setosa]
1.0                    [Iris-versicolor]
1.1                    [Iris-versicolor]
1.2                    [Iris-versicolor]
1.3                    [Iris-versicolor]
1.4    [Iris-versicolor, Iris-virginica]
1.5    [Iris-versicolor, Iris-virginica]
1.6    [Iris-versicolor, Iris-virginica]
1.7    [Iris-versicolor, Iris-virginica]
1.8    [Iris-versicolor, Iris-virginica]
1.9                     [Iris-virginica]
2.0                     [Iris-virginica]
2.1                     [Iris-virginica]
2.2                     [Iris-virginica]
2.3                     [Iris-virginica]
2.4                     [Iris-virginica]
2.5                     [Iris-virginica]