关于计算
- 分组
类似于sql里面的分组查询。
得到的result是个对象。可以使用count,max,min等得出所需的值。result = df.groupby('A')
如果需要得到某一项分组的很多指标。可以使用a = df.groupby('X').min()
Y列里面没一组的和和平均数print(result['Y'].agg([np.sum,np.mean]))
也可以使用匿名函数
得到每一列最大值和最小值的差值grouped['C'].agg([lambda x: x.max() - x.min(), lambda x: x.median() - x.mean()])
- 命名聚合
NamedAgg只是一个元组,也可使用普通元组。animals.groupby("kind").agg( min_height=pd.NamedAgg(column='height', aggfunc='min'), max_height=pd.NamedAgg(column='height', aggfunc='max'), average_weight=pd.NamedAgg(column='weight', aggfunc=np.mean),) ------------------------------ min_height max_height average_weight kind cat 9.1 9.5 8.90 dog 6.0 34.0 102.75
animals.groupby("kind").agg( min_height=('height', 'min'), max_height=('height', 'max'), average_weight=('weight', np.mean), ) ------------- min_height max_height average_weight
kind
cat 9.1 9.5 8.90
dog 6.0 34.0 102.75
```