对于dataframe的groupby聚合函数来说,我们适当了解下语法糖,会对数据分析起到事半功倍的效果。
对分组进行迭代
首先看下各字段的类型
import numpy as np
import pandas as pd
import pymysql
conn = pymysql.connect(host='localhost', user='root', passwd='123456', db='test', port=3306, charset='utf8')
jianshu = pd.read_sql('select * from jianshu1',conn)
jianshu.dtypes
可以看出,view这些字段是整数类型的数据,但这里是object数据,所以我们需要进行数据类型的修改,以view为例。
jianshu['view'] = jianshu['view'].astype('int64')
jianshu.dtypes
把user列作为索引。
jianshu.set_index('user',inplace=True)
jianshu
通过分组后的数据类型为groupby对象,可进行迭代。
jianshu.groupby(jianshu.index)
for name,group in jianshu.groupby(jianshu.index):
print(name,group)
语法糖一:选取一个或多个列
jianshu.groupby(jianshu.index)[['view']].sum()
语法糖二:数据聚合
通过aggregate或者agg方法
jianshu.groupby(jianshu.index)[['view']].agg(['mean','sum'])