Teradata Package for Python Function Reference | 17.10 - percent_rank - Teradata Package for Python - Look here for syntax, methods and examples for the functions included in the Teradata Package for Python.
Teradata® Package for Python Function Reference
- Product
- Teradata Package for Python
- Release Number
- 17.10
- Published
- April 2022
- Language
- English (United States)
- Last Update
- 2022-08-19
- lifecycle
- previous
- Product Category
- Teradata Vantage
- teradataml.dataframe.window.percent_rank = percent_rank()
- DESCRIPTION:
Function returns the relative rank of all the rows in a teradataml
DataFrame or ColumnExpression, according to "order_columns", over the
specified window.
Notes:
1. Window parameter "order_columns" should not be None.
2. Unlike other window aggregate functions, executing percent_rank()
on a window created on teradataml DataFrame does not create
multiple columns, that is, it results in one new column in addition
to the original teradataml DataFrame columns. For calculating
percent_rank, value passed to "order_columns" parameter of window
is considered and not the ColumnExpression.
PARAMETERS:
None.
RETURNS:
* teradataml DataFrame - When aggregate is executed using window created
on teradataml DataFrame.
* ColumnExpression, also known as, teradataml DataFrameColumn - When aggregate is
executed using window created on ColumnExpression.
RAISES:
RuntimeError - If column does not support the aggregate operation.
EXAMPLES:
# Load the data to run the example.
>>> load_example_data("dataframe", "admissions_train")
>>>
# Create a teradataml DataFrame on 'admissions_train' table.
>>> admissions_train = DataFrame("admissions_train")
>>> admissions_train
masters gpa stats programming admitted
id
22 yes 3.46 Novice Beginner 0
36 no 3.00 Advanced Novice 0
15 yes 4.00 Advanced Advanced 1
38 yes 2.65 Advanced Beginner 1
5 no 3.44 Novice Novice 0
17 no 3.83 Advanced Advanced 1
34 yes 3.85 Advanced Beginner 0
13 no 4.00 Advanced Novice 1
26 yes 3.57 Advanced Advanced 1
19 yes 1.98 Advanced Advanced 0
>>>
# Example 1: Get the relative ranking of rows over the values in a window,
# partitioned over 'programming' and sort by 'gpa'.
# Create a window on 'gpa'.
>>> window = admissions_train.gpa.window(partition_columns="programming",
... order_columns="gpa")
# Execute percent_rank() on a window and attach it to the teradataml DataFrame.
# Note: DataFrame.assign() allows combining multiple window aggregate operations
# in one single call. In this example, we are executing percent_rank() along
# with mean() window aggregate operations.
>>> df = admissions_train.assign(percent_rank=window.percent_rank(), mean_gpa=window.mean())
>>> df
masters gpa stats programming admitted mean_gpa percent_rank
id
32 yes 3.46 Advanced Beginner 0 3.660000 0.083333
35 no 3.68 Novice Beginner 1 3.660000 0.333333
3 no 3.70 Novice Beginner 1 3.660000 0.416667
39 yes 3.75 Advanced Beginner 0 3.660000 0.500000
34 yes 3.85 Advanced Beginner 0 3.660000 0.666667
21 no 3.87 Novice Beginner 1 3.660000 0.750000
19 yes 1.98 Advanced Advanced 0 3.615625 0.000000
11 no 3.13 Advanced Advanced 1 3.615625 0.066667
14 yes 3.45 Advanced Advanced 0 3.615625 0.133333
6 yes 3.50 Beginner Advanced 1 3.615625 0.200000
>>>
# Example 2: Get the relative ranking of rows on a window created on
# teradataml DataFrame, partitioned over 'masters',
# and order by 'gpa'.
# Create a window on teradataml DataFrame.
>>> window = admissions_train.window(partition_columns="masters",
... order_columns="gpa")
>>>
# Execute percent_rank() on a window.
>>> df = window.percent_rank()
>>> df
masters gpa stats programming admitted col_percent_rank
id
38 yes 2.65 Advanced Beginner 1 0.095238
32 yes 3.46 Advanced Beginner 0 0.190476
22 yes 3.46 Novice Beginner 0 0.190476
4 yes 3.50 Beginner Novice 1 0.285714
6 yes 3.50 Beginner Advanced 1 0.285714
26 yes 3.57 Advanced Advanced 1 0.428571
24 no 1.87 Advanced Novice 1 0.000000
36 no 3.00 Advanced Novice 0 0.058824
11 no 3.13 Advanced Advanced 1 0.117647
5 no 3.44 Novice Novice 0 0.176471
>>>