use*_*890 3 unique rank pandas pandas-groupby
这是我的数据框:
my_df = pd.DataFrame({'group':['a','a', 'a','b','b'], 'date':['2017-01-02', '2017-01-02','2017-03-01', '2018-02-05', '2018-04-06']})
my_df['date']= pd.to_datetime(my_df['date'], format = '%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)
我想为每个组添加等级,其中将为相同的值分配相同的等级。
这是我想要的输出:
date group rank
0 2017-01-02 a 1
1 2017-01-02 a 1
2 2017-03-01 a 2
3 2018-02-05 b 1
4 2018-04-06 b 2
Run Code Online (Sandbox Code Playgroud)
我想我可以通过分组两次并进行排名和重新加入原始数据框来做到这一点,但是我想知道是否有更快的方法来做到这一点。
只是rank与方法一起使用dense
my_df.groupby(['group'])['date'].rank(method ='dense')
Out[6]:
0 1.0
1 1.0
2 2.0
3 1.0
4 2.0
Name: date, dtype: float64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
552 次 |
| 最近记录: |