0107-【课程实战】-Python数据分析炒菜-第10章-数据分组/数据透视表

本文介绍使用Pandas进行数据分组和聚合的方法,包括如何利用groupBy和aggregate函数进行多条件分组及计算,以及如何运用pivot_table创建数据透视表,实现复杂的数据汇总与分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


10.1 数据分组

10.1 分组键是列名

import pandas as pd
import numpy as np

df = pd.read_csv(r"C:\Users\leadi\Python\01.python\input\train-pivot.csv",encoding="gbk")
df

在这里插入图片描述
单列


df.groupby("客户分类")

输出
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000013245A27588>

df.groupby("客户分类").count()

在这里插入图片描述

df.groupby("客户分类").sum()

在这里插入图片描述

多列

df.groupby(["客户分类","区域"]).sum()

在这里插入图片描述

10.1.2 分组键是Series

df.groupby(df["客户分类"]).sum()

在这里插入图片描述

与单列一致

df.groupby([df["客户分类"],df["区域"]]).sum()

在这里插入图片描述

10.1.3 神奇的aggregate方法

可以同时,做多个汇总

df.groupby("客户分类").aggregate(["count","sum"])

在这里插入图片描述

针对不同的列进行汇总

df.groupby("客户分类").aggregate({"用户ID":"count","7月销量":"sum"})

在这里插入图片描述

10.1.4 对分组后的结果重置索引

df.groupby("客户分类").aggregate({"用户ID":"count","7月销量":"sum"}).reset_index()

在这里插入图片描述


10.2 数据透视表

pd.pivot_table(df,values = "用户ID",columns = "区域",index = "客户分类",aggfunc = "count",margins = True)
  • df 数据框

  • value 对象为值

  • columns 列名分类

  • index 行分类

  • aggfunc 计算方式

  • margins 两边的all统计
    在这里插入图片描述

  • margins _name 替换名

  • fill_value ,缺失填充值

替换名

pd.pivot_table(df,values = "用户ID",columns = "区域",index = "客户分类",aggfunc = "count",margins = True,margins_name = "总计")

在这里插入图片描述
填充

pd.pivot_table(df,values = "用户ID",columns = "区域",index = "客户分类",aggfunc = "count",margins = True,margins_name = "总计",fill_value = 0)

在这里插入图片描述

多列分别统计

pd.pivot_table(df,values = ["用户ID","7月销量"],columns = "区域",index = "客户分类",aggfunc = {"用户ID":"count","7月销量":"sum"},margins = True,margins_name = "总计",fill_value = 0)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值