groupby,agg,cut,merge,apply用法笔记

本文介绍了Pandas库中GroupBy与Agg函数的基本用法及应用场景,包括如何利用GroupBy对数据进行分组处理,以及如何通过Agg进行聚合运算。还涉及Apply函数的使用,并提供了具体实例。

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

GroupBy针对DataFrame将其按照某个准则分组

1.常见的调用形式为:

df['a'].GroupyBy(df['b'])

df.GroupyBy(df['b','c'])#层次化的索引

df.GroupyBy(['b','c'])#直接将columns名称作为索引键进行索引

以上可理解为将Series作为分组键,y此外还可以将任何适当长度的array作为分组键,目前未尝试过

2.常用的方法:

df.GroupyBy(df['b']).mean()#非数值列数据直接跳过
df.GroupyBy(df['b']).size()#返回一个分组的大小的Series(每个值对应的是当前键元素的个数)

df.GroupyBy(df['b']).std()

3.举例GroupyBy的应用:

如给出的csv文件中columns包含['City','State','Population'],让求出每个州所有城市人口的平均值,此时就可以用

df['population'].GroupBy(['State']).mean()

 

注:GroupyBy函数说明在http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html#pandas.DataFrame.groupby

 agg用于聚合运算

1.agg的函数如其名为聚合作用,他接在被groupby函数后的类型使用。

2.几种常见的用法为

#求自己定义的函数
df.groupby(['a']).agg(func)#这个函数是我自己定义过的
#同理也可
df.groupby(['a']).agg(‘mean’)
#同时求几个函数
df.groupby(['a']).agg(['min','max',func])

#以上为常用情况
#如果想换聚合函数的标题
df.groupby([('foo',yongbut'mean'),('bar',func)])
#如果想对不同的列用不同的聚合方式
df.groupby(['a']).agg({'a':'sum','b':['min','max','std']})

函数说明:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.agg.html

 Apply函数-可针对DataFrame和Series操作,返回是DataFrame和Series

1.理解:apply将他应用的对象拆分到小一级,然后让拆分后的每个子部分去实施apply括号内的函数操作,再把操作后的结果合在一起

2.apply可以说是非常常用,这里只说一个基本的用例,连带理解了lambda的用法

energy['Energy Supply']=energy['Energy Supply'].apply(lambda x : x*1000000)

 

注:Apply函数说明 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html#pandas.DataFrame.apply

 

转载于:https://www.cnblogs.com/sss423/p/7496461.html

pandas是一个强大的数据处理和分析库,其中的groupbyagg函数是用于对数据进行分组和聚合操作的重要工具。 groupby函数可以将数据按照指定的列或者多个列进行分组,然后对每个分组进行相应的操作。它的基本语法如下: ``` df.groupby(by=grouping_columns)[columns_to_show].function() ``` 其中,by参数指定了用于分组的列名或者列名列表,columns_to_show参数指定了需要显示的列名或者列名列表,function参数指定了对每个分组进行的操作,比如求和、计数、平均值等。 agg函数是groupby函数的一个补充,它可以对每个分组进行更加灵活的聚合操作。它的基本语法如下: ``` df.groupby(by=grouping_columns).agg({'column_name': 'function'}) ``` 其中,by参数和groupby函数一样,指定了用于分组的列名或者列名列表。agg函数的参数是一个字典,字典的键是需要聚合的列名,值是对应的聚合函数。 下面是一个示例,演示了groupbyagg函数的用法: ```python import pandas as pd # 创建一个DataFrame data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick', 'John'], 'Subject': ['Math', 'Math', 'Math', 'English', 'English', 'English'], 'Score': [80, 90, 75, 85, 95, 80]} df = pd.DataFrame(data) # 按照Name列进行分组,并计算每个分组的平均分和总分 result = df.groupby('Name').agg({'Score': ['mean', 'sum']}) print(result) ``` 输出结果如下: ``` Score mean sum Name John 77 155 Nick 92 185 Tom 82 165 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值