1. 聚合
grouped=df.groupby(by='column name'), 是一个DataFrameGroupBy对象,可以迭代grouped中的每个元素是一个元组,元组里面的值是(索引(分组的值),分组之后的DataFrame对象)
1 dfs_002=dfs_001.groupby(by='Cabinet / ATO')
常见的DataFrameGroupBy对象经过优化的方法:
(1) count 分组中非Na值的数量
(2) sum 非NA值的和
(3) mean 非NA值的平均值
(4) median 非NA值的算数中位数
(5) std, var 无偏(分母为n-1)标准差和方差
(6) min, max 非NA值的最大和最小值
2. 分组
对StarBucks国家和省份分布进行分组统计:可以在by=后面写列表。结果是个Series类型的数据,包含country和state/province两个索引列。因为需要对brand列进行统计,所以后面的统计条件需要使用df['country]和df['state/province]。
grouped=df["brand"].groupby(by=[df['country'],df['state/Province']]).count()
如果是对整个dataframe进行分组,统计条件直接使用country和state/province. 获取分组后的某一部分数据
grouped=df.groupby(by=['country','state/Province'])['country'].count()
如果需要返回Dataframe数据类型
grouped1=df[['brand']].groupby(by=[df['country'],df['state/Province']])['country'].count() grouped2=groupby(by=[df['country'],df['state/Province']][['brand']].count() grouped3=groupby(by=[df['country'],df['state/Province']].count()[['brand']]