pandas groupby

语法糖

image.png

groupby的聚合函数

groupby的聚合函数

参数解释

groupby(by=None, axis=0, level=None,
             as_index=True, sort=True, 
            group_keys=True, squeeze=False, **kwargs)
1、by:mapping, function, str, or iterable。

用于确定groupby的组。如果by是一个函数,那么会调用对象索引的每个值。
如果传递了一个dict或Series,则将使用Series或dict的值来确定组。
一个str或者一个strs列表可以通过自己的列传递给group。

2、axis:轴,int值,默认为0

3、level:如果axis是一个MultiIndex(分层),则按特定的级别分组。int值,默认为None

4、as_index:对于聚合输出,返回带有组标签的对象作为索引。as_index=False实际上是“SQL风格”分组输出,boolean值,默认为True。

5、sort:排序。关闭此功能以获得更好的性能。boolean值,默认True。

6、group_keys:当调用apply时,添加group key来索引来识别片断。boolean值,默认True。

7、squeeze:尽可能减少返回类型的维度,否则返回一致的类型。boolean值,默认False。

index需要注意

df = pd.DataFrame({'key':['a','b','a'],'key2':[1,2,3]})
print(df.groupby(['key'])['key2'].mean())
-------------------
key
a    2
b    2
df.groupby(['key'],as_index=False)['key2'].mean()等价于于
df.groupby(['key'])['key2'].mean().reset_index()
-------------------
  key  key2
0   a     2
1   b     2

2.1返回众数

da = pd.DataFrame({'key':['a','b','a','a'],'key2':[1,3,2,2]})
print(da.groupby(['key'])['key2'].apply(lambda x:x.mode()[0]).reset_index())

----------
  key  key2
0   a     2
1   b     3

你可能感兴趣的:(pandas groupby)