groupby 是 Pandas 中一个超级强劲的函数,它允许你将数据集分组并对每个分组应用一个或多个聚合函数。这种操作一般被称为“split-apply-combine”策略,即将数据拆分成多个部分,对每部分应用函数,然后将结果组合回一个数据结构。
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, dropna=True)
by: 分组依据。可以是列名、列名的列表、数组、索引级别或键,用于确定分组。
axis: 默认为0,表明按行分组。如果为1,则按列分组。
level: 如果对象是多级索引,则按特定级别分组。
as_index: 默认为True,返回对象以组标签作为索引。如果为False,则组标签将作为列返回。
sort: 默认为True,根据组键对结果进行排序。
group_keys: 当应用分组操作时,是否添加组键。
squeeze: 如果应用于此函数的聚合结果只有一列,则返回一个系列。
observed: 仅用于分类分组,如果为True,则仅显示观察到的值。
dropna: 是否从分组键中删除缺失值。
示例:假设我们有一个DataFrame,包含了员工的部门和薪水信息
import pandas as pd
data = {
'Department': ['HR', 'IT', 'Finance', 'HR', 'IT'],
'Employee': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Salary': [70000, 80000, 120000, 65000, 85000]
}
df = pd.DataFrame(data)
可以使用 groupby 来计算每个部门的平均薪水:
grouped = df.groupby('Department')
average_salary = grouped['Salary'].mean()
进阶用法:groupby 还支持多级分组。例如,你可以先按部门分组,然后在每个部门内按性别分组。此外,你还可以对分组后的数据应用多个聚合函数。例如,你可以同时计算每个部门的平均薪水和最高薪水。
grouped = df.groupby(['Department', 'Gender'])
summary = grouped['Salary'].agg(['mean', 'max'])
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...





