Как выполнить процедуру ранга (функцию SAS) внутри группы в Python? - PullRequest
3 голосов
/ 28 мая 2019

Я хочу скопировать следующий код SAS в Python.

proc rank data=a out=b ties=low;    
by id code date; 
var key_id;
ranks rank;   
run;

1 Ответ

2 голосов
/ 03 июня 2019

Я бы сделал что-то вроде этого:

a = pd.DataFrame({'id': [0,1,1,2,2],
                  'code': ['a','b','b','c','c'],
                  'date':[-5,-4,-4,-2,-2],
                  'key_id':[0.05,3,5,0.001,-1]})

b =a.groupby(['id', 'code', 'date'])['key_id'].rank(ascending=True)
a['rank'] = b
a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...