【Pandas 基础知识 GroupBy分组】

前言

      本文通过图解Pandas   groupby分组机制,介绍了Pandas对Series,DataFrame分组的基础知识和groupby对象的两个重要属性;总结了分组的万能公式和注意事项,适合初学者学习参考。

目录

一、 图解GroupBy机制

groupby对象的重要属性

二、Series分组操作

1.单键分组 

2.多键分组

3.生成唯一键对索引的多层索引

三 DataFrame分组操作

1.单键分组

 2.多键分组

四 遍历DataFrame

1.DataFrame的可迭代属性

总结


一、 图解GroupBy机制

 【Pandas 基础知识 GroupBy分组】_第1张图片

 

groupby()函数使Series或DataFrame生成了一个groupby对象,这个对象没有进行任何计算,只是保存了这个对象所拥有的基本信息。

groupby对象的重要属性

1 groupby对象可以进行sum(),mean()等计算;

2 groupby对象支持迭代,会生成一个包含数组名和数据块的2维元组序列;

二、Series分组操作

记忆公式Series.groupby('key').sum()/mean()

1.单键分组 


import pandas as pd
import numpy as np

df=pd.DataFrame({'key1':['曹操','曹操','刘备','刘备','孙权'],
                'key2':['夏侯','许褚','赵云','马超','周瑜'],
                'data1':np.random.randn(5),
                'data2':np.random.randn(5)})
df['data1'].groupby(df['key1']) #生成groupby对象
df['data1'].groupby(df['key1']).sum() #对分组进行求和运算

【Pandas 基础知识 GroupBy分组】_第2张图片

2.多键分组

df['data1'].groupby([df['key1'],df['key2']]).sum()

【Pandas 基础知识 GroupBy分组】_第3张图片

 

3.生成唯一键对索引的多层索引

df['data1'].groupby([df['key1'],df['key2']]).sum().unstack()

【Pandas 基础知识 GroupBy分组】_第4张图片

三 DataFrame分组操作

 记忆公式:DataFrame.groupby('key').sum()/mean()

1.单键分组

df.groupby(df['key1']).sum()

【Pandas 基础知识 GroupBy分组】_第5张图片

 2.多键分组

df.groupby([df['key1'],df['key2']]).sum()

【Pandas 基础知识 GroupBy分组】_第6张图片

 

四 遍历DataFrame

1.DataFrame的可迭代属性

GroupBy对象支持迭代,生成一个包含数组名和数组块的2维元组序列;

for name,group in df.groupby(['key1','key2']):
    print(name)
    print(group)

【Pandas 基础知识 GroupBy分组】_第7张图片


总结

Series,DataFrame对象分组万能公式:

Series/DataFrame.groupby('key'/['key1','key2'...]).sum()/mean()

groupby后面传入的key生成新Series,DataFrame的index;

groupby后面传递的如果是列表或数组,此操作返回的对象是分组的DataFrame;
groupby后面传递的如果是单个列名,此操作返回的对象是Series;

你可能感兴趣的:(python,pandas,数据分析)