首页 > 其他分享 >pandas之groupby

pandas之groupby

时间:2023-08-04 16:11:21浏览次数:42  
标签:False df 分类 df2 groupby print pandas

数据准备

import pandas as pd


df = pd.read_excel(r"C:\Users\Desktop\Excel工作表.xlsx")  
print(df)
"""
   产品  分类  价格    销量
0  桃子  水果  12  2134
1  李子  水果  23  3123
2  香蕉  水果  12   534
3  饺子  生鲜  11   565
4  馒头  生鲜   9  6788
5  包子  生鲜   7   453
6  猪肉  肉类  20   211
7  牛肉  肉类  30   458
"""

方法介绍

# 1、单列聚合求平均、求和,返回DataFrame  
df1 = df.groupby('分类', as_index=False)['价格'].mean()  
print(df1)  
df2 = df.groupby('分类', as_index=False)['价格'].sum()  
print(df2)

# 2、多列聚合求平均,返回DataFrame  
df2 = df.groupby('分类', as_index=False)[['价格', '销量']].mean()  
print(df2)  
  
# 3、多列多个聚合  
df2 = df.groupby('分类')[['价格']].agg(['mean', 'max'])  
print(df2)  
  
# 4、对聚合结果重命名,返回为DataFrame  
df2 = df.groupby('分类', as_index=False)[['价格']].agg(平均价格=('价格', 'mean'), 最高价格=('价格', 'max'))  
print(df2)  
  
# 5、多列分组,返回为DataFrame  
df2 = df.groupby(['产品', '分类'], as_index=False).agg(平均价格=('价格', 'mean'))  
print(df2)  
  
# 6、多列分组并根据平均价格降序排序,返回为DataFrame  
df2 = df.groupby(['产品', '分类'], as_index=False).agg(平均价格=('价格', 'mean')).sort_values(by='平均价格', ascending=False)  
print(df2)  
  
# 7、最大的top N  
df2 = df.groupby('分类')['销量'].nlargest(2)  
print(df2)  
  
# 8、最小的top N  
df2 = df.groupby('分类')['销量'].nsmallest(3)  
print(df2)  
  
# 9、唯一值  
df2 = df.groupby('分类', as_index=False).agg(unique_values=('产品', 'unique'))  
print(df2)  
  
# 10、唯一值的数量  
df2 = df.groupby('分类', as_index=False).agg(num_unique_values=('产品', 'nunique'))  
print(df2)  
  
# 11、分组的个数  
df2 = df.groupby('分类').ngroups  
print(df2)  
  
# 12、获得某个特定分组  
df2 = df.groupby(['分类', '产品']).get_group(('水果', '李子'))  
print(df2)  
  
# 13、rank函数。对每个组中的行进行排序。  
df['dense_rank'] = df.groupby('分类')['价格'].rank(ascending=False, method='dense')  
print(df)  
  
# 14、将分组展开后求和  
df['price'] = df.groupby('分类')['价格'].expanding().sum().values  
print(df)

标签:False,df,分类,df2,groupby,print,pandas
From: https://www.cnblogs.com/rong-z/p/17606241.html

相关文章

  • Pandas处理时序数据(初学者必会)!
     Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学时序数据是指时间序列数据。时间序列数据是同一统一指标按时间顺序记录的数据列。在同一数据列中的各个数据必须是同口径的,要求具有可比性。时序数据可以是时期数,也可以时点数。时间序列分析的目的是通过找出样本内时间序列的......
  • 数据分析之Pandas缺失数据处理
     Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学Pandas是一个强大的分析结构化数据的工具集,它的使用基础是Numpy(提供高性能的矩阵运算),用于数据挖掘和数据分析,同时也提供数据清洗功能。在往期文章中,已经详细讲解了Pandas做分析数据的四种基本操作:索引、分组、变形及合并。现......
  • [数据分析与可视化] Python绘制数据地图4-MovingPandas入门指北
    MovingPandas是一个基于Python和GeoPandas的开源地理时空数据处理库,用于处理移动物体的轨迹数据。它提供了一组强大的工具,可以轻松地加载、分析和可视化移动物体的轨迹。通过使用MovingPandas,用户可以轻松地处理和分析移动对象数据,并从中提取有关行为、模式和趋势的见解。无论是处......
  • 【pandas小技巧】--拆分列
    拆分列是pandas中常用的一种数据操作,它可以将一个包含多个值的列按照指定的规则拆分成多个新列,方便进行后续的分析和处理。拆分列的使用场景比较广泛,以下是一些常见的应用场景:处理日期数据:在日期数据中,经常会将年、月、日等信息合并成一列,通过拆分列可以将其拆分成多个新列,方便......
  • pandas模块------------------------筛选条件loc(多条件选择)
    loc在选择时应用条件。单条件:选择大于90成绩的学生信息:importpandasaspdsource=pd.read_excel('C:/Users/Administrator/Desktop/source.xlsx')print(source)da=source.loc[(source['成绩']>90)]print(da)G:\Python3.8解释器\python.exeC:/Users/Administrator/P......
  • pandas模块--------------------------------相同(不同)文件夹下相同格式的Excel表格数
    上代码:importpandasaspdimportos#文件路径file_dir=r'C:/Users/Administrator/Desktop/test/'#构建新的表格名称new_filename=file_dir+'/new_file.xlsx'#找到文件路径下的所有表格名称,返回列表file_list=os.listdir(file_dir)new_list=[]forfileinfile_list:......
  • 【pandas小技巧】--修改列的名称
    重命名pandas数据中列的名称是一种常见的数据预处理任务。这通常是因为原始数据中的列名称可能不够清晰或准确。例如,列名可能包含空格、大写字母、特殊字符或拼写错误。使用pandas的rename函数可以帮助我们更改列名,从而使数据更加清晰和易于理解。此外,重命名列名还可以确保......
  • pandas模块---------------------------------常用求平均average的用法
    求平均值代码:importpandasaspd#导入模块df=pd.read_excel(r'C:\Users\Administrator/Desktop/test/1.xlsx')#文件路径a=lambdax:x.mean(1).round(2)#lambda函数m=a(df.iloc[:,1:3])#传入第1-3列计算平均值m=pd.DataFrame(m,columns=['平均分'])#转成dataframe,命名列df['......
  • 【pandas小技巧】--按类型选择列
    本篇介绍的是pandas选择列数据的一个小技巧。之前已经介绍了很多选择列数据的方式,比如loc,iloc函数,按列名称选择,按条件选择等等。这次介绍的是按照列的数据类型来选择列,按类型选择列可以帮助你快速选择正确的数据类型,提高数据分析的效率。1.类型种类pandas列的数据类型主要有4......
  • 【PY】pandas 处理 Excel 中错别字修正
    前言今天有友友问起来,如何对Excel进行操作,对里面的内容进行错别字修正,那接下来由博主来为各位读者细细讲解一番;首先想到的是用xlrd去读取Excel里面的内容,不过呢,最新版的xlrd已经不支持.xlsx了,使用xlrd读取.xlsx文件时,会报错:XLRDError:Excelxlsxfile;notsupporte......