admin 管理员组

文章数量: 887021


2024年2月18日发(作者:动态网页和静态网页的主要区别在哪里)

pandas group by用法

pandas的groupby()方法可以对数据进行分组操作,并且可以对分组后的数据进行聚合、转换和过滤等操作。

基本用法

python

y(by, axis=0, level=None, as_index=True, sort=True,

group_keys=True, squeeze=False, observed=False, kwargs)

- by: 分组依据,可以是列标签、函数、数组或字典。

- axis: 0表示按行分组,1表示按列分组,默认为0。

- level: 按多层索引分组时指定分组层数。

- as_index: 是否把分组依据的列当作索引,默认为True。

- sort: 是否对分组结果进行排序,默认为True。

- group_keys: 是否在分组结果上加入分组键,默认为True。

- squeeze: 是否删除维度为1的分组键,默认为False。

- observed: 对于多层索引,是否只考虑观察到的值(True),还考虑未观察到的值(False)。

聚合操作

pandas中的聚合操作包括mean、sum、count、min、max、median、var、std等方法,可以使用aggregate()方法或agg()方法进行调用。

python

y(by).mean()

y(by).sum()

y(by).count()

y(by).min()

y(by).max()

y(by).median()

y(by).var()

y(by).std()

agg()方法可以使用自定义函数进行聚合操作:

python

y(by).agg(func)

转换操作

转换操作主要有apply、transform、filter三种方法。

apply()方法可以对每个分组进行任意操作:

python

y(by).apply(func)

transform()方法对每个分组进行相同的操作:

python

y(by).transform(func)

filter()方法用于过滤分组:

python

y(by).filter(func)

其他操作

agg()、apply()、transform()和filter()方法都支持多种分组操作,例如:

python

y(by).agg([func1, func2])

y(by).apply([func1, func2])

y(by).transform([func1, func2])

y(by).filter([func1, func2])

可以同时对多列进行分组:

python

y([col1, col2]).mean()

可以对分组结果进行连接操作:

python

y(by1).concat(y(by2))


本文标签: 分组 进行 操作 方法