Return the rank of the current row (used for window functions).
Examples:
| >>> import daft
>>> from daft.window import Window
>>> from daft.functions import rank
>>> df = daft.from_pydict(
... {"category": ["A", "A", "A", "A", "B", "B", "B", "B"], "value": [1, 3, 3, 7, 7, 7, 4, 4]}
... )
>>>
>>> window = Window().partition_by("category").order_by("value", desc=True)
>>> df = df.with_column("rank", rank().over(window))
>>> df = df.sort("category")
>>> df.show()
|
╭──────────┬───────┬────────╮
│ category ┆ value ┆ rank │
│ --- ┆ --- ┆ --- │
│ String ┆ Int64 ┆ UInt64 │
╞══════════╪═══════╪════════╡
│ A ┆ 7 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 3 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 3 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 1 ┆ 4 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 7 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 7 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 4 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 4 ┆ 3 │
╰──────────┴───────┴────────╯
(Showing first 8 rows)
Returns:
| Name | Type | Description |
Expression | Expression | An expression that returns the rank of the current row. |
Source code in daft/functions/window.py
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 | def rank() -> Expression:
"""Return the rank of the current row (used for window functions).
Examples:
>>> import daft
>>> from daft.window import Window
>>> from daft.functions import rank
>>> df = daft.from_pydict(
... {"category": ["A", "A", "A", "A", "B", "B", "B", "B"], "value": [1, 3, 3, 7, 7, 7, 4, 4]}
... )
>>>
>>> window = Window().partition_by("category").order_by("value", desc=True)
>>> df = df.with_column("rank", rank().over(window))
>>> df = df.sort("category")
>>> df.show()
╭──────────┬───────┬────────╮
│ category ┆ value ┆ rank │
│ --- ┆ --- ┆ --- │
│ String ┆ Int64 ┆ UInt64 │
╞══════════╪═══════╪════════╡
│ A ┆ 7 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 3 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 3 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 1 ┆ 4 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 7 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 7 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 4 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 4 ┆ 3 │
╰──────────┴───────┴────────╯
<BLANKLINE>
(Showing first 8 rows)
Returns:
Expression: An expression that returns the rank of the current row.
"""
return Expression._from_pyexpr(native.rank())
|