Pandas数据分组统计的实现示例
1.分组统计groupby()函数
对数据进行分组统计,主要适用DataFrame对象的groupby()函数。其功能如下。
(1)根据特定条件,将数据拆分成组
(2)每个组都可以独立应用函数(如求和函数sum(),均值函数mean()等)
(3)将结果合并到一个数据结构中
示例1:
根据“一级分类”对订单数据进行分组统计求和。

import pandas as pd #导入pandas模块
df=pd.read_csv('JD.csv',encoding='gbk')
#抽取数据
df1=df[['一级分类','7天点击量','订单预定']]
df1=df1.groupby('一级分类').sum() #分组统计求和
示例2:
按照图书“一级分类”和“二级分类”对订单数据进行分组统计求和
import pandas as pd #导入pandas模块
df=pd.read_csv('JD.csv',encoding='gbk')
#抽取数据
df1=df[['一级分类','二级分类','7天点击量','订单预定']]
df2=df1.groupby(['一级分类','二级分类']).sum() #分组统计求和
示例3:
求各二级分类的七天点击量。首先按“二级分类”分类,而后进行分组统计求和。
df1 = df1.groupby('二级分类')['七天点击量'].sum()2.对分组数据进行迭代
示例1:
按照“一级分类”分组,并且输出每一分类中的订单数据
# 抽取数据
df1 = df[['一级分类',‘七天点击量',‘订单预定']]
for name, group in df.groupby('一级分类')
print(name)
print(group)其中name是‘一级分类’, group是其他数据。因此使用groupby()函数对多列进行分组,那么需要在for循环中指定多列。
3.对分组的某列或多列使用聚合函数
Python也可以实现像SQL中的分组聚合运算操作,主要通过groupby()函数与agg()函数实现。
以下代码实现:
1. 以'一级分类'分组,求分组后的平均值与和
2.以'一级分类'分组,求分组后'七天点击量'的平均值与和,求'订单预定'的和
df1.groupby('一级分类').agg(['mean','sum'])
df1.groupby('一级分类').agg({'七天点击量':['mean','sum'],'订单预定':['sum']})我们可以通过自定义函数实现数组分组统计。书本p110
以下代码实现:
1.统计一月份销售数据中,购买次数最多的产品,及其人均购买数,人均花费,总购买数,总花费。
df = pd.read_excel('1月.xlsx')
max1 = lambda x: x.value_counts(dropna=false).index[0]
df1 = df.agg({'宝贝标题':[max1],
'数量':['sum','mean'],
'卖家实际支付金额':['sum','mean']})
print(df1)4.通过字典和Series对象进行分组统计
1.通过字典进行分组统计
创建字典,df.groupby()函数通过字典内信息分组。
import pandas as pd #导入pandas模块
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
df=pd.read_csv('JD.csv',encoding='gbk') #导入csv文件
df=df.set_index(['商品名称'])
#创建字典
mapping={'北京出库销量':'北上广','上海出库销量':'北上广',
'广州出库销量':'北上广','成都出库销量':'成都',
'武汉出库销量':'武汉','西安出库销量':'西安'}
df1=df.groupby(mapping,axis=1).sum()
print(df1)
2.通过Series对象进行分组统计
创建一个Series对象,然后将Series对象传给groupby()函数实现数据分组。Series对象内放索引+值:如'北京出库销量',对应值'北上广'。
import pandas as pd #导入pandas模块
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
df=pd.read_csv('JD.csv',encoding='gbk') #导入csv文件
df=df.set_index(['商品名称'])
data={'北京出库销量':'北上广','上海出库销量':'北上广',
'广州出库销量':'北上广','成都出库销量':'成都',
'武汉出库销量':'武汉','西安出库销量':'西安',}
s1=pd.Series(data)
print(s1)
df1=df.groupby(s1,axis=1).sum()
print(df1)到此这篇关于Pandas数据分组统计的实现示例的文章就介绍到这了,更多相关Pandas 分组统计内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用Python轻松构建一个Windows11系统智能垃圾清理系统
Windows 11虽然引入了存储感知,但在面对深层开发缓存、老旧更新残留及特定应用日志时往往力不从心,本文将详解如何使用Python编写一套安全、智能、可配置的自动化清理脚本,有需要的小伙伴可以了解下2026-01-01
Pandas.DataFrame删除指定行和列(drop)的实现
本文主要介绍了Pandas.DataFrame删除指定行和列(drop)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-02-02
Python实现网络通信的HTTP请求Socket编程Web爬虫方法探索
随着互联网的不断发展,Python作为一门多用途的编程语言,提供了强大的工具和库来进行网络连接和通信,本文将深入探讨Python中连接网络的方法,包括HTTP请求、Socket编程、Web爬虫和REST API的使用2024-01-01
教你在Excel中调用Python脚本实现数据自动化处理的方法
Excel是全世界最流行的编程语言,Excel已经可以实现编程语言的算法,因此它是具备图灵完备性的,和JavaScript、Java、Python一样,今天通过本文给大家介绍下Python数据自动化处理的相关知识,感兴趣的朋友一起看看吧2022-02-02


最新评论