分组统计groupby功能:
根据某些条件,将数据拆成组
对每个组独立应用函数
将结果合并到一个数据结构中
1.语法
Dataframe在行(axis=0)或列(axis=1)上进行分组,将一个函数应用到各个分组并产生一个新值,然后函数执行结果被合并到最终的结果对象中。
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
2.基础分组
import pandas as pd
import numpy as np
df = pd.DataFrame({'A':['Foo','Bar','Foo','Bar','Foo'],
'B':['one','two','three','one','two'],
'C':np.random.randn(5),
'D':range(5)
})
print(df)
print('------------')
print(df.groupby('A'),type(df.groupby('A'))) #此处得到的是一个groupby对象,并没有进行计算
print('------------')
# 对A分组
a = df.groupby('A').mean() # 按A列分组后并对C跟D列进行求平均
print(a)
print('------------')
# 先对A分组,再对B分组,然后计算其平均值
b = df.groupby(['A','B']).mean()
print(b)
# 对A分组,然后对D列求平均值
print('------------')
c = df.groupby(['A'])['D'].mean()
print(c)
print('------------')
# 默认axis=0,按行来分组
输出结果: