Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫将多个列分组为集合,并对其他列进行排序_Python_Pandas_Sorting_Pandas Groupby - Fatal编程技术网

Python 熊猫将多个列分组为集合,并对其他列进行排序

Python 熊猫将多个列分组为集合,并对其他列进行排序,python,pandas,sorting,pandas-groupby,Python,Pandas,Sorting,Pandas Groupby,我有一个数据框,数据格式如下: 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 VERIZO

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

  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%    
我想将交易所、股票交易所、年份作为一个集合,并根据最高股息(基于股息列)对这些集合进行排序

我在想,我可能必须平均股息列(每套),然后根据平均值排名(索引?),然后删除平均列(我不想看到这个)


有人能推荐一些代码来实现这一点吗?我看过其他的帖子,但没有一篇对我有用(因为我怀疑有多个专栏)

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

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)

旁注:
set
此处的术语不正确,您需要分组。这可能就是你在别处找不到解决方案的原因。很棒的东西,第一次就成功了。我还为Div_Cvr_Avg添加了一列,并按“Div_Grp_Avg”和“Div_Cvr_Avg”排序。