Return the row number of the current row (used for window functions).
Examples:
1
2
3
4
5
6
7
8
9
10
11
12 | >>> import daft
>>> from daft.window import Window
>>> from daft.functions import row_number
>>> df = daft.from_pydict(
... {"category": ["A", "A", "A", "A", "B", "B", "B", "B"], "value": [1, 7, 2, 9, 1, 3, 3, 7]}
... )
>>>
>>> # Ascending order
>>> window = Window().partition_by("category").order_by("value")
>>> df = df.with_column("row", row_number().over(window))
>>> df = df.sort("category")
>>> df.show()
|
╭──────────┬───────┬────────╮
│ category ┆ value ┆ row │
│ --- ┆ --- ┆ --- │
│ String ┆ Int64 ┆ UInt64 │
╞══════════╪═══════╪════════╡
│ A ┆ 1 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 2 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 7 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 9 ┆ 4 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 1 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 3 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 3 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 7 ┆ 4 │
╰──────────┴───────┴────────╯
(Showing first 8 rows)
Returns:
| Name | Type | Description |
Expression | Expression | An expression that returns the row number of the current row. |
Source code in daft/functions/window.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 | def row_number() -> Expression:
"""Return the row number of the current row (used for window functions).
Examples:
>>> import daft
>>> from daft.window import Window
>>> from daft.functions import row_number
>>> df = daft.from_pydict(
... {"category": ["A", "A", "A", "A", "B", "B", "B", "B"], "value": [1, 7, 2, 9, 1, 3, 3, 7]}
... )
>>>
>>> # Ascending order
>>> window = Window().partition_by("category").order_by("value")
>>> df = df.with_column("row", row_number().over(window))
>>> df = df.sort("category")
>>> df.show()
╭──────────┬───────┬────────╮
│ category ┆ value ┆ row │
│ --- ┆ --- ┆ --- │
│ String ┆ Int64 ┆ UInt64 │
╞══════════╪═══════╪════════╡
│ A ┆ 1 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 2 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 7 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ A ┆ 9 ┆ 4 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 1 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 3 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 3 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ B ┆ 7 ┆ 4 │
╰──────────┴───────┴────────╯
<BLANKLINE>
(Showing first 8 rows)
Returns:
Expression: An expression that returns the row number of the current row.
"""
return Expression._from_pyexpr(native.row_number())
|