2)直接针对分组对象,调用agg()函数(很重要)
下面知识的讲解,涉及到“聚合函数字符串”,这是我自己起的名字,类似于"sum"、“mean”、“count”、“max”、“min”,都叫做“聚合函数字符串”。同时还需要注意一点,agg()函数中还有一个axis参数,用于指定行、列。
df.agg(“mean”)
df.agg([“mean”, “sum”, “max”])
df.agg({“利润”:[“mean”, “sum”] , “年龄”:[“max”, “min”]})
df.agg(lambda x: x.mean())
① 传入单个聚合函数字符串
df = pd.DataFrame({"部门":["A", "A", "B", "B"], "利润":[10, 20, 15, 28], "年龄":[20, 15, 18, 30]}) display(df) df1 = df.groupby("部门").agg("mean") display(df1)
结果如下:
② 传入多个聚合函数字符串
df = pd.DataFrame({"部门":["A", "A", "B", "B"], "利润":[10, 20, 15, 28], "年龄":[20, 15, 18, 30]}) display(df) df1 = df.groupby("部门").agg(["sum","mean"]) display(df1)
结果如下:
③ 传入一个字典:可以针对不同的列,提供不同的聚合信息。
df = pd.DataFrame({"部门":["A", "A", "B", "B"], "利润":[10, 20, 15, 28], "年龄":[20, 15, 18, 30]}) display(df) df1 = df.groupby("部门").agg({"利润":["sum","mean"],"年龄":["max","min"]}) display(df1)
结果如下:
④ 传入自定义函数
df = pd.DataFrame({"部门":["A", "A", "A", "B", "B", "B"], "利润":[10, 32, 20, 15, 28, 10], "销售量":[20, 15, 33, 18, 30, 22]}) display(df) df.groupby("部门").agg(lambda x:x.max()-x.min())
结果如下: