gpt4 book ai didi

python - Pandas 将多个列分组为集合并对其他列进行排序

转载 作者:行者123 更新时间:2023-12-01 09:18:37 24 4
gpt4 key购买 nike

我有一个数据框,其数据格式如下:

  Exchange Ticker                        Name  Year  Dividend_Cover_Ratio Dividend Net_Return        
0 NYSE VZ VERIZON COMMUNICATIONS INC 2013 1.93 5.2% 41.69%
1 NYSE VZ VERIZON COMMUNICATIONS INC 2014 1.13 5.38% 14.79%
2 NYSE VZ VERIZON COMMUNICATIONS INC 2015 1.59 6.62% 24.74%
3 NYSE VZ VERIZON COMMUNICATIONS INC 2016 1.42 4.51% 28.7%
4 NYSE VZ VERIZON COMMUNICATIONS INC 2017 3.18 4.43% -1.81%
50 NYSE MCD MCDONALDS CORP 2013 1.79 3.66% 33.83%
51 NYSE MCD MCDONALDS CORP 2014 1.48 3.85% 14.03%
52 NYSE MCD MCDONALDS CORP 2015 1.40 3.1% 51.36%
53 NYSE MCD MCDONALDS CORP 2016 1.52 3.06% 11.34%
54 NYSE MCD MCDONALDS CORP 2017 1.68 2.24% 39.44%

我想将 Exchange、Ticker、Year 作为一个集合,并根据最高股息(基于股息列)对这些集合进行排名。

我想我可能必须对股息列(每组)进行平均,然后根据平均值进行排名(指数?),然后删除平均列(我不想看到这个)。

有人可以建议一些可以实现此目的的代码吗?我看过其他帖子,但没有任何效果对我有用(由于我怀疑多个列的分组)。

最佳答案

首先按组添加平均股息系列:

df['Div_Grp_Avg'] = df.groupby(['Exchange', 'Ticker', 'Year'])['Dividend'].transform('mean')

然后按这个新系列排序:

df = df.sort_values('Div_Grp_Avg', ascending=False)

最后,删除辅助列:

df = df.drop('Div_Grp_Avg', 1)

关于python - Pandas 将多个列分组为集合并对其他列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51001694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com