pandas groupby
2018-04-08 本文已影响20人
只为此心无垠
语法糖
image.pnggroupby的聚合函数
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