1.根据给定的条件将数据拆分成组
2.每个组都可以独立应用函数(如求和,求平均值)
3.将结果合并到一个数据结构中
DataFrame.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=False)
by 映射,字典或Series对象、数组、标签或标签列表。如果by是一个函数,则对象索引的每个值调用它。如果传递了一个字典或Series对象,则使用该字典或Series对象值来确定组。如果传递了数组ndarray,则按原样使用这些值为确定组
axis axis=1表示行,axis=0表示列(默认)
level 表示索引层级,默认无
as_index 布尔型,默认为True,返回以组标签为索引的对象
sort 对组进行排序,布尔型,默认为True
group_keys 布尔型,默认为True,调用apply函数时,将分组的键添加到索引以标识片段
squeeze 布尔型,默认为False,如果可能,减少返回类型的维度,否则返回一致类型
observed 当以石斑鱼为分类时,才会使用该参数。如果参数值为True,则仅显示分类石斑鱼的观测值。如果为False,则显示分类石斑鱼的所有值
返回值 DataFrameGroupBy,返回包含有关组的信息的groupby对象# 根据一级分类统计订单数据
import pandas as pd
# 设置数据显示的列数和宽度
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('JD.xlsx')
df1 = df[['一级分类','7天点击量','订单预定']]
print(df1.groupby('一级分类').sum())
7天点击量 订单预定
一级分类
数据库 186 15
移动开发 261 7
编程语言与程序设计 4280 192
网页制作/Web技术 345 15
【按照多列分组统计】# 根据两级分类统计订单数据
import pandas as pd
# 设置数据显示的列数和宽度
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('JD.xlsx')
df1 = df[['一级分类','二级分类','7天点击量','订单预定']]
print(df1.groupby(['一级分类','二级分类']).sum())
7天点击量 订单预定
一级分类 二级分类
数据库 Oracle 58 2
SQL 128 13
移动开发 Android 261 7
编程语言与程序设计 ASP.NET 87 2
C# 314 12
C++/C语言 724 28
JSP/JavaWeb 157 1
Java