基于CPTY与currency的双重求和结果按首属性排序技术问询
按CPTY属性排序分组结果的实现方案
没问题!针对你已经得到的双重分组求和结果,要按第一个属性CPTY排序,有几种简单直接的实现方式,我给你详细说明:
方式一:链式调用,分组聚合后直接排序
你可以在groupby聚合的代码后面直接链式调用sort_values()方法,一步到位得到排序后的结果:
# 升序排序(默认按字母顺序) brkrcy = data.groupby(['CPTY','currency'], as_index=False).agg({"Gross Loan Amount": "sum"}).sort_values(by='CPTY') # 如果需要降序排序,添加ascending=False参数 brkrcy = data.groupby(['CPTY','currency'], as_index=False).agg({"Gross Loan Amount": "sum"}).sort_values(by='CPTY', ascending=False)
方式二:对已生成的结果数据框单独排序
如果你已经得到了brkrcy这个结果数据框,也可以单独对它执行排序操作,这样更灵活:
# 生成新的排序后数据框(不修改原数据,推荐这种方式) sorted_brkrcy = brkrcy.sort_values(by='CPTY') # 或者直接在原数据框上修改(注意:inplace=True会直接改变原数据,谨慎使用) brkrcy.sort_values(by='CPTY', inplace=True)
补充:自定义排序顺序
如果默认的字母排序不符合你的业务需求(比如需要指定BARC排在最前,BNP次之等),可以先将CPTY列转为分类类型并指定顺序,再排序:
import pandas as pd # 自定义CPTY的排序优先级 custom_order = ['BARC', 'BNP', 'BMON'] brkrcy['CPTY'] = pd.Categorical(brkrcy['CPTY'], categories=custom_order, ordered=True) # 按自定义顺序排序 sorted_brkrcy = brkrcy.sort_values(by='CPTY')
内容的提问来源于stack exchange,提问作者SBad
相关产品推荐
相关产品推荐

