Path: blob/main/py-polars/tests/unit/functions/test_nth.py
6939 views
from __future__ import annotations12import pytest34import polars as pl5from polars.exceptions import DuplicateError6from polars.testing import assert_frame_equal789@pytest.mark.parametrize(10("expr", "expected_cols"),11[12(pl.nth(0), "a"),13(pl.nth(-1), "c"),14(pl.nth(2, 1), ["c", "b"]),15(pl.nth([2, -2, 0]), ["c", "b", "a"]),16],17)18def test_nth(expr: pl.Expr, expected_cols: list[str]) -> None:19df = pl.DataFrame({"a": [1, 2], "b": [3, 4], "c": [5, 6]})20result = df.select(expr)21expected = df.select(expected_cols)22assert_frame_equal(result, expected)232425def test_nth_duplicate() -> None:26df = pl.DataFrame({"a": [1, 2]})27with pytest.raises(DuplicateError, match="a"):28df.select(pl.nth(0, 0))293031