Pandas groupby函数,Pandas DataFrame.groupby()用法讲解(17)

作者 : 慕源网 本文共3100个字,预计阅读时间需要8分钟 发布时间: 2021-12-1 共261人阅读

Pandas groupby函数,Pandas DataFrame.groupby()用法讲解(17)

Pandas DataFrame.groupby() 介绍

Pandas中DataFrame使用groupby()分组查询。这个分组过程可以通过pandas库的group by方法来实现。此方法允许根据提到的聚合功能对数据框中的值进行分组,并将结果打印到控制台。

本文是Python Pandas教程系列的一部分,您可以点击Python Pandas使用教程查看所有。

语法和参数

Pandas DataFrame.groupby() 的语法和参数:

语法:

DataFrame.groupby(self, by=None, axis=0, level=None, as_index: bool = True, sort: bool = True, group_keys: bool = True, squeeze: bool = False, observed: bool = False)

参数:

参数 描述
by 参数“by”用作组的映射函数。这里使用 group by 函数确定组。这个参数也有能力用它保存一个字典或一个系列,所以这意味着一个字典或一个系列是在 by 参数上操作的,所以这个分组过程将基于这个 dict 值执行。甚至像 ndarray 这样的数组也可以应用于此参数以实现分组过程。
axis 此参数表示需要应用 groupBy() 函数的列或轴。此参数中指定的值表示数据框中的列位置或行位置。为了实现这种在数据帧上灵活移动的能力,轴值被框定在下面的方法中,{index (0), columns (1)}。这里提到 0 到轴参数的值会填充数据框中每一行的重命名值,而在数据框中提到 1 的值会填充数据框中所有列的替换值。
level 这提到了 groupBy 过程要考虑的级别,如果使用具有多个级别的轴,则 groupBy 将根据表示的特定级别应用。
as_index  这是一个Boolean 表示,as_index 参数的默认值为 True。这仅用于pandas 中的数据框。pandas 中 as_index 参数的主要用途是返回带有分组标签的对象作为索引。
sort 从优化的角度来看,这是最重要的参数。sorted 关键字有助于通过调整输入中传递的组键来实现更高的性能,从而使它们获得更好的性能。提及这些排序键对每个组的观察顺序没有影响。
Group_keyes 用于在调用 apply 时识别group keys的各个部分。
squeeze 如果需要更改返回的维度,则必须使用squeeze函数。
observed 这是另一种Boolean 表示,观察参数的默认值为false。当观察参数设置为 true 时,所有观察值都应作为分组过程的一部分显示,而将此参数设置为 false 将显示所涉及的分类组的所有值。

Pandas DataFrame.groupby() 示例

以下是pandas dataframe.groupby() 的示例:

示例#1

代码:

import pandas as pd
import numpy as np
Core_Dataframe = pd.DataFrame({'Emp_No' : ['Emp1', np.nan,'Emp3','Emp4'],
'Employee_Name' :  ['Arun', 'selva', np.nan, 'arjith'],
'Employee_dept' : ['CAD', 'CAD', 'DEV', np.nan]})
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
print("")
print("   THE CORE DATAFRAME AFTER GROUP BY OPERATION ")
print("")
print(Core_Dataframe.groupby(by=['Employee_dept']).count())

输出:

Pandas groupby函数,Pandas DataFrame.groupby()用法讲解(17)

说明:在本例中,首先制定了核心数据帧。pd.dataframe() 用于制定数据帧。数据框的每一行都连同它们的列名一起插入。一旦数据框被完全公式化,它就会被打印到控制台上。我们可以注意到,在这个实例中,数据框包含员工编号、员工姓名和员工部门等详细信息。然后使用 group by 方法对基于 Employee 部门列的数据框进行分组,以 count() 作为聚合方法,我们可以从打印的输出中注意到,将部门分组的部门以及每个部门的计数打印到控制台。

示例#2

代码:

import pandas as pd
Core_Dataframe = pd.DataFrame( {
'name': ['Alan Xavier', 'Annabella', 'Janawong', 'Yistien', 'Robin sheperd', 'Amala paul', 'Nori'],
'city': ['california', 'Toronto', 'ontario', 'Shanghai',
'Manchester', 'california', 'ontario'],
'age': [51, 51, 23, 64, 31, 31, 47],
'py-score': [82.0, 73.0, 81.0, 30.0, 48.0, 61.0, 84.0] })
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
print("")
Output = Core_Dataframe.groupby(by=['city','age'])
print(Output.first())

输出:

Pandas groupby函数,Pandas DataFrame.groupby()用法讲解(17)

说明:在本例中,首先制定了核心数据帧。pd.dataframe() 用于制定数据帧。数据框的每一行都连同它们的列名一起插入。一旦数据框被完全公式化,它就会被打印到控制台上。我们可以注意到,在这种情况下,数据帧包含随机人员信息和这些人的 py_score 值。此数据框中使用的关键列是名称、年龄、城市和 py-score 值。这里两个不同的列用于分组过程,城市和年龄是这两列。这里没有提到特定的聚合功能,这意味着将根据提到的值执行分组。我们可以在打印输出上注意到相同的情况。

示例 #3

 代码:

import pandas as pd
Core_Dataframe = pd.DataFrame({'A' :  [ 1.23, 6.66, 11.55, 15.44, 21.44, 26.4 ],
'B' :  [ 2.345, 745.5, 12.4, 17.34, 22.35, 27.44 ],
'C' :  [ 3.67, 8, 13.4, 18, 23, 28.44 ],
'D' :  [ 4.6788, 923.3, 14.5, 19, 24, 29.44 ],
'E' :  [ 5.3, 10.344, 15.556, 20.6775, 25.4455, 30.3 ]})
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
print("")
print("   THE CORE DATAFRAME - GROUP BY COUNT ")
print(Core_Dataframe.groupby(by=['A,F'], axis=0,level=0).count())
print("")
print("   THE CORE DATAFRAME - GROUP BY MEAN ")
print(Core_Dataframe.groupby(by=['A,F'], axis=0,level=0).mean())

输出:

Pandas groupby函数,Pandas DataFrame.groupby()用法讲解(17)

说明:在本例中,首先制定了核心数据帧。pd.dataframe() 用于制定数据帧。数据框的每一行都连同它们的列名一起插入。一旦数据框被完全公式化,它就会被打印到控制台上。此处 groupby 过程与计数和平均值的聚合一起应用,以及轴和级别参数就位。输出被打印到控制台。

总结

这是 Pandas DataFrame.groupby() 的指南。在这里,我们还将讨论语法和参数以及不同的示例及其代码实现


慕源网 » Pandas groupby函数,Pandas DataFrame.groupby()用法讲解(17)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录