在Pandas中绘制Groupby对象中每个组的大小
Pandas dataframe.groupby()函数是库中最有用的函数之一,它根据列/条件将数据分割成组,然后应用一些操作,例如,size()可以计算每个组中的条目/行的数量。groupby()也可以应用于系列。
语法: DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
参数 :
by:映射、函数、str或iterable
axis: int, default 0
level: 如果轴是一个多指标(分层),按一个或多个特定级别分组
as_index : 对于聚合输出,返回以组标签为索引的对象。只与DataFrame输入有关。as_index=False实际上是 “SQL风格 “的分组输出。
sort :对组键进行排序。通过关闭这个功能获得更好的性能。注意这并不影响每组中观察值的顺序。groupby保留了每组中的行的顺序。
group_keys :在调用apply时,将组键添加到索引中以识别件。
queeze :如果可能的话,降低返回类型的维度,否则返回一个一致的类型。
返回: GroupBy对象
在下面的例子中,我们将使用两个库seaborn和pandas,其中seaborn用于绘图,pandas用于读取数据。我们将使用seaborn的load_dataset()方法来加载penguins.csv数据集。
# import the module
import seaborn as sns
dataset = sns.load_dataset('penguins')
# displaying the data
print(dataset.head())
输出 :
数据集的前五行
使用info()方法获得关于数据集的更多信息
# display the number of columns and their data types
dataset.info()
输出 :
关于数据集的信息
我们将使用groupby()方法根据 “岛屿 “对数据进行分组,并进行绘图。
使用Pandas进行绘图。
# apply groupby on the island column
# plotting
dataset.groupby(['island']).size().plot(kind = "bar")
使用Pandas绘制groupby()的大小图
使用Seaborn进行制图
# use the groupby() function to group island column
# and apply size() function
# size() is equivalent to counting the distinct rows
result = dataset.groupby(['island']).size()
# plot the result
sns.barplot(x = result.index, y = result.values)
使用的尺寸图