相关疑难解决方法(0)

pandas group by year,按销售列排名,在具有重复数据的数据框中

我想创建一年的排名(因此在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)

python duplicates rank pandas pandas-groupby

16
推荐指数
1
解决办法
2万
查看次数

在熊猫队伍中排名

我有一个典型的"面板数据"(在计量经济学术语中,不是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代码正好显示了我的目标.

谢谢你的帮助!

python group-by pandas

8
推荐指数
1
解决办法
6220
查看次数

如何在 pandas 的每个分区窗口中获得密集排名

我有一个 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)

python pandas

4
推荐指数
1
解决办法
5275
查看次数

使用python-pandas在组内排名

我正在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)

data-analysis python-3.x pandas

3
推荐指数
1
解决办法
3174
查看次数