pandas的排序、分组groupby及cumsum累计求和方式

 更新时间:2022年05月17日 11:12:04   作者:种麦南山下  
这篇文章主要介绍了pandas的排序、分组groupby及cumsum累计求和方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

生成一列sum_age 对age 进行累加

df['sum_age'] = df['age'].cumsum()
print(df)

生成一列sum_age_new 按照 gender和is_good 对age进行累加

df['sum_age_new'] = df.groupby(['gender','is_good'])['age'].cumsum()
print(df)

 

根据不同的性别对年龄进行 等级 排序

df['rank_g'] = df.groupby(['gender'])['age'].rank()
print(df)

这里的 rank( ) 即 'rank_g' ,并不是按照1、2、3、4、、依次排

按照官方文档的意思,该函数是沿着某个轴来计算数值数据等级(1到n)。默认情况下,为相等的值分配同一个等级,该等级是这些值的等级的平均值。

例子:

import pandas as pd
obj = pd.Series([7,-5,7,4,2,0,4])
print(obj.rank())

代码对 [7, -5, 7, 4, 2, 0, 4] 进行从小到大地排序,很明显地,可以排成 [-5, 0, 2 ,4, 4, 7, 7],数值7有第6和第7两个位置,那应该排序应该排到第几级?根据官方文档,取平均值,(6+7)/2=6.5,所以两个7的等级都为6.5,同理可得两个4的等级都为(4+5)/2=4.5。

输出:

0    6.5
1    1.0
2    6.5
3    4.5
4    3.0
5    2.0
6    4.5
dtype: float64

对数据排序之后,分组,并累计求和

# 对Start Time进行排序,Connection Type分组,temp进行累计求和cumsum
wsw_1 = wsw.sort_values(['Start Time'])
wsw_1.loc[:, 'Connection Number'] = wsw_1.groupby(['Connection Type'])['temp'].cumsum()

这里如果不对start time排序,Connection Number不会按时间顺序,统计drilling、tripping 的number数

pandas分组排序功能

在一个班级里,学生考试科目有语文、数学、英语,分别有对应的成绩。

现在,想要列出每个科目班级的前五名的情况,要求包含科目、姓名、成绩、名次。

通过以下代码实现:

import pandas as pd
a=['小红','小绿','小蓝','小白','小青','小紫','小粉','小傻','小红','小绿','小蓝','小白','小青','小紫','小粉','小傻','小红','小绿','小蓝','小白','小青','小紫','小粉','小傻']
b=['语文','语文','语文','语文','语文','语文','语文','语文','数学','数学','数学','数学','数学','数学','数学','数学','英语','英语','英语','英语','英语','英语','英语','英语']
c=[97,65,23,43,67,23,55,98,56,45,67,78,98,45,87,65,67,23,55,98,56,45,67,78]
len(a),len(b),len(c)
df=pd.DataFrame({'name':a,'kemu':b,'score':c})
df2=df.sort_values(['kemu','score','name'], ascending=[1, 0,1])
df2['rn']=df2.groupby(['kemu']).rank(method='first',ascending =0)['score']
df2[df2['rn']<=5]
''''

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Python中的文件操作

    详解Python中的文件操作

    今天这篇文章给大家介绍Python中的文件操作,文章内容介绍的很详细,有需要的可以参考借鉴。
    2016-08-08
  • python调用HEG工具批量处理MODIS数据的方法及注意事项

    python调用HEG工具批量处理MODIS数据的方法及注意事项

    这篇文章主要介绍了python调用HEG工具批量处理MODIS数据的方法,本文给大家提到了注意事项,通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • PyCharm专业最新版2019.1安装步骤(含激活码)

    PyCharm专业最新版2019.1安装步骤(含激活码)

    这篇文章主要介绍了PyCharm专业最新版2019.1安装步骤(含激活码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Django 权限认证(根据不同的用户,设置不同的显示和访问权限)

    Django 权限认证(根据不同的用户,设置不同的显示和访问权限)

    这篇文章主要介绍了Django 权限认证(根据不同的用户,设置不同的显示和访问权限),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 使用Python处理Excel文件并将数据存储到PostgreSQL的方法

    使用Python处理Excel文件并将数据存储到PostgreSQL的方法

    在日常工作中,我们经常会遇到需要处理大量文件并将数据存储至数据库或整合到一个文件的需求,本文将向大家展示如何使用Python处理Excel文件并将数据存储到PostgreSQL数据库中,需要的朋友可以参考下
    2024-01-01
  • python画图系列之个性化显示x轴区段文字的实例

    python画图系列之个性化显示x轴区段文字的实例

    今天小编就为大家分享一篇python画图系列之个性化显示x轴区段文字的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python取代netcat过程分析

    python取代netcat过程分析

    本篇文章通过代码实例给大家详细分析了python取代netcat过程,希望我们整理的内容能够帮助到你。
    2018-02-02
  • Python实现字典依据value排序

    Python实现字典依据value排序

    新华字典大家都使用过吧,那么使用python语言是如何实现字典排序的呢?下面跟着本教程一起学习Python实现字典依据value排序,需要的朋友参考下吧
    2016-02-02
  • Python实现人工蜂群算法的示例代码

    Python实现人工蜂群算法的示例代码

    ABC,即人工蜂群算法(Artificial Bee Colony Algorithm),由Karaboga等人提出,这篇文章主要介绍了人工蜂群算法的概念与Python实现,感兴趣的可以了解一下
    2023-08-08
  • python中关于eval函数的使用及说明

    python中关于eval函数的使用及说明

    这篇文章主要介绍了python中关于eval函数的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论