首页 > 其他分享 >Pandas GroupBy 使用教程

Pandas GroupBy 使用教程

时间:2023-05-17 15:33:03浏览次数:48  
标签:教程 df product value GroupBy pd table chair Pandas


实例 1 将分组后的字符拼接

import pandas as pd
df=pd.DataFrame({
    'user_id':[1,2,1,3,3],
    'content_id':[1,1,2,2,2],
    'tag':['cool','nice','clever','clever','not-bad']
})
df






将df按content_id分组,然后将每组的tag用逗号拼接

df.groupby('content_id')['tag'].apply(lambda x:','.join(x)).to_frame()



实例2 统计每个content_id有多少个不同的用户

import pandas as pd

df = pd.DataFrame({
    'user_id':[1,2,1,3,3,],
    'content_id':[1,1,2,2,2],
    'tag':['cool','nice','clever','clever','not-bad']
})

df.groupby("content_id")["user_id"].nunique().to_frame()



实例3 分组结果排序

import pandas as pd

df = pd.DataFrame({
    'value':[20.45,22.89,32.12,111.22,33.22,100.00,99.99],
    'product':['table','chair','chair','mobile phone','table','mobile phone','table']
})
df



df1 = df.groupby('product')['value'].sum().to_frame().reset_index()
df1

按产品product分组后,然后value求和:




df2 = df.groupby('product')['value'].sum().to_frame().reset_index().sort_values(by='value')
df2



实例4 分组大小绘图

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
    'value':[20.45,22.89,32.12,111.22,33.22,100.00,99.99],
    'product':['table','chair','chair','mobile phone','table','mobile phone','table']
})
df



plt.clf()
df.groupby('product').size().plot(kind='bar')
plt.show()



实例5 分组求和绘图

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
    'value':[20.45,22.89,32.12,111.22,33.22,100.00,99.99],
    'product':['table','chair','chair','mobile phone','table','mobile phone','table']
})
df



plt.clf()
df.groupby('product').sum().plot(kind='bar')
plt.show()



实例 6 使用agg函数

import pandas as pd

df = pd.DataFrame({
    'value':[20.45,22.89,32.12,111.22,33.22,100.00,99.99],
    'product':['table','chair','chair','mobile phone','table','mobile phone','table']
})

grouped_df = df.groupby('product').agg({'value':['min','max','mean']})
grouped_df



grouped_df.columns = ['_'.join(col).strip() for col in grouped_df.columns.values]
grouped_df = grouped_df.reset_index()
grouped_df



实例7 遍历分组

for key,group_df in df.groupby('product'):
    print("the group for product '{}' has {} rows".format(key,len(group_df)))
the group for product 'chair' has 2 rows
the group for product 'mobile phone' has 2 rows
the group for product 'table' has 3 rows

源代码:Python008-Pandas GroupBy 使用教程.ipynb

标签:教程,df,product,value,GroupBy,pd,table,chair,Pandas
From: https://blog.51cto.com/u_16116809/6291762

相关文章

  • Tensorflow教程(十四) 命令行参数tf.flags的使用
    实例1importtensorflowastfflags=tf.flagsFLAGS=flags.FLAGSflags.DEFINE_integer('data_num',100,"""Flagoftypeinteger""")flags.DEFINE_string('img_path','./img',"""Flagof......
  • 通俗易懂!像使用SQL一样使用Pandas进行数据筛选等复杂操作
    相对于学习Pandas各种数据筛选操作,SQL语法显得更加简洁清晰,若能够将SQL语法与Pandas中对应的函数的使用方法关联起来,对于我们应用Pandas进行数据筛选来讲无疑是一个福音。本文通过Pandas实现SQL语法中条件过滤、排序、关联、合并、更新、删除等简单及复杂操作,使得我们对方法的理......
  • Windows安装、配置、卸载MySQL教程
    MySQL是一个关系型数据库管理系统,目前为Oracle旗下产品,它具有开源、体积小、速度快的优点,许多网站使用的都是MySQL数据库。简单而言,MySQL数据库核心功能就是用来存储数据的。MySQL数据库分为社区版和商业版,这里介绍的是社区版的安装教程一、下载MySQL打开MySQL官网下载链......
  • Python数据离散化指南:手写if-elif语句与pandas中cut()方法的实现
    当我们进行数据分析时,有时候需要对数值型数据进行离散化,将其划分为不同的标签或类别。这样做可以方便我们进行统计和分析,并帮助我们更好地理解数据。在本文中,我们将介绍两种常见的离散化方法,并提供实现代码。方法一:使用条件语句第一种方法是使用条件语句来显式地检查输入值x......
  • VS Code 代码片段编写教程
    #VSCode代码片段编写教程最近要做一个vscode的代码片段插件,于是搜索和学习相关内容,整理分享给大家!>[!TIP]>本篇博客50%+内容由BingChat提供,然后作者对内容进行验证和整理。##格式使用json格式定义代码片段,示例:```json{"ngif":{"prefix":"ngif",......
  • SAP UI5 应用的两种开发方式的教程
    要开发连接到SAPOData服务的SAPUI5应用程序,开发人员可以使用以下选项之一:SAPFioriElements这种方式基于常见业务场景的几个基本Floorplans创建标准应用程序。这些Floorplans提供UI代码,包括一些预置的逻辑,以便来自后端的数据准确地到达预期的位置,并且UI行为基于......
  • dvwa(low)等级教程(上)
    暴力破解首先我们假装知道用户名和密码,之后我们不在dvwa中输入,如果直接输入就没意义了,在dvwa中随便输入账户名和密码,之后利用bp进行抓包。这里我用户名输入的123密码123之后让bp对其进行拦截 之后发送到include模块,这里要爆破账户名和密码所以爆破类型选择急速炸弹,之后选......
  • python 基础教程:使用jieba库对文本进行分词
    一、jieba库是什么?Python的jieba库是一个中文分词工具,它可以将一段中文文本分割成一个一个的词语,方便后续的自然语言处理任务,如文本分类、情感分析等。jieba库使用了基于前缀词典的分词方法,能够处理中文的各种复杂情况,如歧义词、新词等。它还提供了多种分词模式,如精确模式、全......
  • E840-TTL(4G05-DGC)型号4G/LTE数传模块快速入门测试教程
    亿佰特LTE数传模块E840-TTL(4G05-DGC)快速入门测试教程E840-TTL(4G05-DGC)是亿佰特推出的4G/LTE数传模块产品,是为实现串口设备与网络服务器,通过网络相互传输数据而开发的产品,该4G/LTE数传模块产品软件功能完善,覆盖绝大多数常规应用场景,用户只需通过简单的设置,即可实现串口到网络......
  • 用Fiddler、Charles和mitmproxy进行手机抓包的配置教程
    [用Fiddler、Charles和mitmproxy进行手机抓包的配置教程_程序员大飞1的博客-CSDN博客](https://blog.csdn.net/weixin_42512684/article/details/93534803)写爬虫时,有些数据pc端并不能提供我们需要的数据例如抖音,就需要对手机端数据进行抓取,目前来说比较常用的app抓包软件:Fidd......