龙岗永湖网站建设,万维网申请网站域名,自建论坛,用python做电商网站1.分组统计groupby()函数
对数据进行分组统计#xff0c;主要适用DataFrame对象的groupby()函数。其功能如下。 #xff08;1#xff09;根据特定条件#xff0c;将数据拆分成组 #xff08;2#xff09;每个组都可以独立应用函数#xff08;如求和函数sum()#xff0…1.分组统计groupby()函数
对数据进行分组统计主要适用DataFrame对象的groupby()函数。其功能如下。 1根据特定条件将数据拆分成组 2每个组都可以独立应用函数如求和函数sum()均值函数mean()等 3将结果合并到一个数据结构中
示例1: 根据“一级分类”对订单数据进行分组统计求和。 import pandas as pd #导入pandas模块
dfpd.read_csv(JD.csv,encodinggbk)
#抽取数据
df1df[[一级分类,7天点击量,订单预定]]
df1df1.groupby(一级分类).sum() #分组统计求和示例2: 按照图书“一级分类”和“二级分类”对订单数据进行分组统计求和
import pandas as pd #导入pandas模块
dfpd.read_csv(JD.csv,encodinggbk)
#抽取数据
df1df[[一级分类,二级分类,7天点击量,订单预定]]
df2df1.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(dropnafalse).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)
dfpd.read_csv(JD.csv,encodinggbk) #导入csv文件
dfdf.set_index([商品名称])
#创建字典
mapping{北京出库销量:北上广,上海出库销量:北上广,广州出库销量:北上广,成都出库销量:成都,武汉出库销量:武汉,西安出库销量:西安}
df1df.groupby(mapping,axis1).sum()
print(df1)2.通过Series对象进行分组统计 创建一个Series对象然后将Series对象传给groupby()函数实现数据分组。Series对象内放索引值如北京出库销量对应值北上广。
import pandas as pd #导入pandas模块
#解决数据输出时列名不对齐的问题
pd.set_option(display.unicode.east_asian_width, True)
dfpd.read_csv(JD.csv,encodinggbk) #导入csv文件
dfdf.set_index([商品名称])
data{北京出库销量:北上广,上海出库销量:北上广,广州出库销量:北上广,成都出库销量:成都,武汉出库销量:武汉,西安出库销量:西安,}
s1pd.Series(data)
print(s1)
df1df.groupby(s1,axis1).sum()
print(df1)