Path: blob/main/py-polars/tests/unit/functions/test_col.py
6939 views
from __future__ import annotations12import polars as pl3from polars import col4from polars.testing import assert_frame_equal567def test_col_select() -> None:8df = pl.DataFrame(9{10"ham": [1, 2, 3],11"hamburger": [11, 22, 33],12"foo": [3, 2, 1],13"bar": ["a", "b", "c"],14}15)1617# Single column18assert df.select(pl.col("foo")).columns == ["foo"]19# Regex20assert df.select(pl.col("*")).columns == ["ham", "hamburger", "foo", "bar"]21assert df.select(pl.col("^ham.*$")).columns == ["ham", "hamburger"]22assert df.select(pl.col("*").exclude("ham")).columns == ["hamburger", "foo", "bar"]23# Multiple inputs24assert df.select(pl.col(["hamburger", "foo"])).columns == ["hamburger", "foo"]25assert df.select(pl.col("hamburger", "foo")).columns == ["hamburger", "foo"]26assert df.select(pl.col(pl.Series(["ham", "foo"]))).columns == ["ham", "foo"]27# Dtypes28assert df.select(pl.col(pl.String)).columns == ["bar"]29assert df.select(pl.col(pl.Int64, pl.Float64)).columns == [30"ham",31"hamburger",32"foo",33]343536def test_col_series_selection() -> None:37ldf = pl.LazyFrame({"a": [1], "b": [1], "c": [1]})38srs = pl.Series(["b", "c"])3940assert ldf.select(pl.col(srs)).collect_schema().names() == ["b", "c"]414243def test_col_dot_style() -> None:44df = pl.DataFrame({"lower": 1, "UPPER": 2, "_underscored": 3})4546result = df.select(47col.lower,48col.UPPER,49col._underscored,50)5152expected = df.select("lower", "UPPER", "_underscored")53assert_frame_equal(result, expected)545556