我想创建一年的排名(因此在2012年,经理B为1. 2011年,经理B再次为1).我和pandas rank函数挣扎了一段时间,并且不想求助于for循环.
s = pd.DataFrame([['2012','A',3],['2012','B',8],['2011','A',20],['2011','B',30]], columns=['Year','Manager','Return'])
Out[1]:
Year Manager Return
0 2012 A 3
1 2012 B 8
2 2011 A 20
3 2011 B 30
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是附加代码(之前认为这不相关):
s = pd.DataFrame([['2012', 'A', 3], ['2012', 'B', 8], ['2011', 'A', 20], ['2011', 'B', 30]], columns=['Year', 'Manager', 'Return'])
b = pd.DataFrame([['2012', 'A', 3], ['2012', 'B', 8], ['2011', 'A', 20], ['2011', 'B', 30]], columns=['Year', 'Manager', 'Return'])
s = s.append(b)
s['Rank'] = s.groupby(['Year'])['Return'].rank(ascending=False)
raise Exception('Reindexing only valid with uniquely valued Index '
Exception: Reindexing only …Run Code Online (Sandbox Code Playgroud) 我有一个典型的"面板数据"(在计量经济学术语中,不是pandas面板对象).数据框有一Date列和一ID列,以及包含特定值的其他列.对于每个日期,我需要将基于V1的ID进行横截面排序为10组(十分位数),并创建一个名为rank_col(取值1到10)的新列来识别排名.然后将所有rank1,rank2,... rank10汇集在一起以获得一些统计数据,如mean,std.
这可以通过以下代码在SAS中轻松完成,它还说明了我的目的:
proc sort data=df;
by Date;
proc rank data=df out=df_ranked groups=10;
var V1;
ranks rank_col;
by Date;
run;
Run Code Online (Sandbox Code Playgroud)
df_rankeddf除了它有更多的列rank_col,其中包含每行所属的等级组之外,它是相同的.
对不起,我没有显示结构的示例数据,需要一个真实的长数据来说明.但SAS代码正好显示了我的目标.
谢谢你的帮助!
我有一个 pandas 数据框,如下所示
Dominant_Topic word appearance
Topic 0 aaaawww 50
Topic 0 aacn 100
Topic 0 aaren 20
Topic 0 aarongoodwin 200
Topic 1 aaronjfentress 10
Topic 1 aaronrodger 20
Topic 1 aasmiitkap 30
Topic 2 aavqbketmh 10
Topic 2 ab 10
Topic 2 abandon 1
Run Code Online (Sandbox Code Playgroud)
我想为每个分区获得密集排名,分区列是名为 的列Dominant_Topic。排名应根据每个分区中单词出现的次数降序排列。所以输出看起来像 -
Dominant_Topic word appearance dense_rank
Topic 0 aaaawww 50 3
Topic 0 aacn 100 2
Topic 0 aaren 20 4
Topic 0 aarongoodwin 200 1
Topic 1 aaronjfentress 10 3 …Run Code Online (Sandbox Code Playgroud) 我正在solver使用一组实例比较一组八个算法(列),每个实例对每个算法执行一次,参数级别D从1到10执行.因此,结果数据框将如下所示:
instance D z solver
0 1000_ep0.0075 1 994 threatened
1 1000_ep0.0075 1 993 desc
2 1000_ep0.0075 1 994 degree
3 1000_ep0.0075 1 993 threatened_desc
4 1000_ep0.0075 1 993 threatened_degree
5 1000_ep0.0075 1 994 desc_later
6 1000_ep0.0075 1 994 degree_later
7 1000_ep0.0075 1 993 dyn_degree
8 1000_ep0.0075 2 986 threatened
9 1000_ep0.0075 2 987 desc
10 1000_ep0.0075 2 988 degree
11 1000_ep0.0075 2 987 threatened_desc
12 1000_ep0.0075 2 986 threatened_degree
13 1000_ep0.0075 2 987 desc_later
14 …Run Code Online (Sandbox Code Playgroud)