一 聚合函数
1. numpy、pandas使用的统计方式
在数组中经常使用的聚合方式
data[['counts', 'ches_name']].agg([np.mean, np.std])
agg({'xx':np.mean, 'xx2':[np.sum, np.std]})
2. 在pandas或者numpy中没有现成的函数可以使用,可以使用transform自定义函数
如: 将指定列的全部数据 * 2
方式一
data['counts'].transform(lambda x: x*2)
方式二:按照函数内既定的规则,进行指定数据的操作
def transform_func(values):
"""自定义函数,定义数据操作规则"""
return values*2
data['counts'].transform(transform_func) # 一维
data1 = data.groupby(by='品牌')['销售额'].transform(tran_func) # 分组之后自定义聚合
二 透视表 - pivot_table
源码参数分析
def pivot_table(
data, # Dataframe,对哪张表进行操作
values=None, # 显示的字段
index=None, # 行分组键,可以是数组,列表,如果是数组,必须有一样的长度
columns=None, # 列分组键
aggfunc="mean", # 聚合函数, 默认是mean
fill_value=None, # 填充空值, 将为Nan的值填充为对应的值
margins=False, # 汇总开关,默认是False
dropna=True,
margins_name="All", # 汇总的列或者行的bolumns,可以指定修改名称
observed=False,
1、index: 行分组键,分完组后,分组键的取值在行索引的位置上
pd.pivot_table(data, index=['order_id', 'dishes_name'], aggfunc=[np.mean, np.sum], values=['add_inprice', 'counts'])
mean sum
add_inprice counts add_inprice counts
order_id dishes_name
137 农夫山泉NFC果汁100% 0 1 0 1
凉拌菠菜 0 1 0 1
番茄炖牛腩\r\n 0 1 0 1
白饭/小碗 0 4 0 4
西瓜胡萝卜沙拉 0 1 0 1
... ... ... ... ...
1323 番茄炖秋葵