Python14-pandas整理06

数据分组/数据透视表

数据分组就是根据一个或多个键(可以是函数、数组或df列名)将数据分成若干组,然后对分组后的数据分别进行汇总计算。

数据透视表与数据分组类似但又不同,数据分组是在一维(行)方向上不断拆分,而数据透视表是在行、列方向上同时拆分。

 

左边是数据分组;右边是数据透视表

 

  • 数据分组

    groupby()

    分组键为列名     单列:df.groupby('客户分类').count()   多列:df.groupby(['客户分类','区域']).sum()     groupby进行分组,

                                     (对分组后的数据进行汇总运算的操作称为聚合,使用的函数称为聚合函数)

     分组键为series    一个series:df.groupby(df["客户分类"]).count()    多个series:df.groupby([df["客户分类"],df["区域"]]).sum()

     

     aggregate()

     聚合函数直接在dataframegroupby上调用,一次只能使用一种汇总方式。aggregate可以一次使用多种汇总方式。

     df.groupby("客户名称").aggregate(["count","sum"])

     df.groupby("客户名称").aggregate({"用户":"count", "7月销量":"sum","8月销量":"sum"})      ——用字典

     df.groupby("客户分类").sum().reset_index()               ——重置索引

  • 数据透视表

pivot_table()   ——基于什么,统计什么,怎么统计

           

pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

            (默认为求均值,name为all……)

            #data 表示要做数据透视表的整个表

            #values 对应Excel中值那个框

            #index  对应Excel中行那个框

            #columns 对应Excel中列那个框

            #aggfunc 表示对values的计算类型

            #fill_value 表示对空值的填充值

            #margins 表示是否显示合计列

            #dropna  表示是否删除缺失,如果为真的时,则把一整行全作为缺失值删除

            #margins_name 表示合计列的列名

使用reset_index()重置索引

port_stats = titanic_survival.pivot_table(index="Embarked", values=["Fare","Survived"], aggfunc=np.sum)
print(port_stats)
                Fare  Survived
Embarked                      
C         10072.2962        93
Q          1022.2543        30
S         17439.3988       217

            pd.pivot_table(df,values = "用户id", columns = "区域", index="客户名称", aggfunc = "count").reset_index()   

            pd.pivot_table(df,values = ["用户id","7月销量"], columns = "区域", index="客户名称", aggfunc = {"用户id":"count","7月销量":"sum"}).reset_index()   

            #如果需要对不同值进行不同的计算类型,则需要传入一个字典

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值