@@ -8334,34 +8334,85 @@ def last(self, offset):
8334
8334
def rank (self , axis = 0 , method = 'average' , numeric_only = None ,
8335
8335
na_option = 'keep' , ascending = True , pct = False ):
8336
8336
"""
8337
- Compute numerical data ranks (1 through n) along axis. Equal values are
8338
- assigned a rank that is the average of the ranks of those values.
8337
+ Compute numerical data ranks (1 through n) along axis.
8338
+
8339
+ By default, equal values are assigned a rank that is the average of the
8340
+ ranks of those values.
8339
8341
8340
8342
Parameters
8341
8343
----------
8342
8344
axis : {0 or 'index', 1 or 'columns'}, default 0
8343
- index to direct ranking
8344
- method : {'average', 'min', 'max', 'first', 'dense'}
8345
- * average: average rank of group
8346
- * min: lowest rank in group
8347
- * max: highest rank in group
8345
+ Index to direct ranking.
8346
+ method : {'average', 'min', 'max', 'first', 'dense'}, default 'average'
8347
+ How to rank the group of records that have the same value
8348
+ (i.e. ties):
8349
+
8350
+ * average: average rank of the group
8351
+ * min: lowest rank in the group
8352
+ * max: highest rank in the group
8348
8353
* first: ranks assigned in order they appear in the array
8349
8354
* dense: like 'min', but rank always increases by 1 between groups
8350
- numeric_only : boolean, default None
8351
- Include only float, int, boolean data. Valid only for DataFrame or
8352
- Panel objects
8353
- na_option : {'keep', 'top', 'bottom'}
8354
- * keep: leave NA values where they are
8355
- * top: smallest rank if ascending
8356
- * bottom: smallest rank if descending
8357
- ascending : boolean, default True
8358
- False for ranks by high (1) to low (N)
8359
- pct : boolean, default False
8360
- Computes percentage rank of data
8355
+ numeric_only : bool, optional
8356
+ For DataFrame objects, rank only numeric columns if set to True.
8357
+ na_option : {'keep', 'top', 'bottom'}, default 'keep'
8358
+ How to rank NaN values:
8359
+
8360
+ * keep: assign NaN rank to NaN values
8361
+ * top: assign smallest rank to NaN values if ascending
8362
+ * bottom: assign highest rank to NaN values if ascending
8363
+ ascending : bool, default True
8364
+ Whether or not the elements should be ranked in ascending order.
8365
+ pct : bool, default False
8366
+ Whether or not to display the returned rankings in percentile
8367
+ form.
8361
8368
8362
8369
Returns
8363
8370
-------
8364
- ranks : same type as caller
8371
+ same type as caller
8372
+ Return a Series or DataFrame with data ranks as values.
8373
+
8374
+ See Also
8375
+ --------
8376
+ core.groupby.GroupBy.rank : Rank of values within each group.
8377
+
8378
+ Examples
8379
+ --------
8380
+
8381
+ >>> df = pd.DataFrame(data={'Animal': ['cat', 'penguin', 'dog',
8382
+ ... 'spider', 'snake'],
8383
+ ... 'Number_legs': [4, 2, 4, 8, np.nan]})
8384
+ >>> df
8385
+ Animal Number_legs
8386
+ 0 cat 4.0
8387
+ 1 penguin 2.0
8388
+ 2 dog 4.0
8389
+ 3 spider 8.0
8390
+ 4 snake NaN
8391
+
8392
+ The following example shows how the method behaves with the above
8393
+ parameters:
8394
+
8395
+ * default_rank: this is the default behaviour obtained without using
8396
+ any parameter.
8397
+ * max_rank: setting ``method = 'max'`` the records that have the
8398
+ same values are ranked using the highest rank (e.g.: since 'cat'
8399
+ and 'dog' are both in the 2nd and 3rd position, rank 3 is assigned.)
8400
+ * NA_bottom: choosing ``na_option = 'bottom'``, if there are records
8401
+ with NaN values they are placed at the bottom of the ranking.
8402
+ * pct_rank: when setting ``pct = True``, the ranking is expressed as
8403
+ percentile rank.
8404
+
8405
+ >>> df['default_rank'] = df['Number_legs'].rank()
8406
+ >>> df['max_rank'] = df['Number_legs'].rank(method='max')
8407
+ >>> df['NA_bottom'] = df['Number_legs'].rank(na_option='bottom')
8408
+ >>> df['pct_rank'] = df['Number_legs'].rank(pct=True)
8409
+ >>> df
8410
+ Animal Number_legs default_rank max_rank NA_bottom pct_rank
8411
+ 0 cat 4.0 2.5 3.0 2.5 0.625
8412
+ 1 penguin 2.0 1.0 1.0 1.0 0.250
8413
+ 2 dog 4.0 2.5 3.0 2.5 0.625
8414
+ 3 spider 8.0 4.0 4.0 4.0 1.000
8415
+ 4 snake NaN NaN NaN 5.0 NaN
8365
8416
"""
8366
8417
axis = self ._get_axis_number (axis )
8367
8418
0 commit comments